ActionScript 3.0 :: Any Way To Change Keyboard Listener?
Jun 10, 2010
Any way to change a keyboard listener I have set up, so that instead of reacting instantly when it hears a key_UP event, it waits to see if there's another KEY_UP within, say 50ms?
I want to monitor each charachter in a text box when a user inputs, eg. there name. If they type John, I want an image to dislplay J . o . h. n under the text box. I cannot seem to figure out how to monitor each letter individually. I could only get it working if i use seperate input boxes, so a input box for j, o, h & n as an example.Could someone point me in the right direrection. Here is the code Im trying to use at the moment.
I am trying to write a keyboard event listener so that when I press a specific key it controls the time line. Below is working code for when I press "enter". How would I make it work if I pressed "Q"?
I was trying to make a tank game in which I can move the tanks, let them shoot each other, etc... I insist on creating external classes with Flash Pro cause I am used to OOP language like Java. I created a Tank class which represents all the tanks. Here is the code of this class:
[Code]...
The problem is that the action listener seems never get called when I press any keys. the trace() is not called. But I tried to add a mouse listener just to test and it worked. So I guess its the Keyboard event listener class's problem? Everyone I see on the web uses stage.addEventListener(KeyboardEvent.KEY_DOWN, move) approach.
Just using the script below to output the key that is pressed in the output but I get the "Cannot access a property or method of a null object reference." warning on the addEventListener line, which I assume is because of the "stage" var. How do I correct that?
I have a flash app that I would like to listen for a string of characters being typed on a keyboard. If a user typed in apple as an example that would either be correct or incorrect, and if they typed it in uppercase or lowercase or upper and lower it would still equate to true. Here is the tricky part, the string is not being typed into a textfield or anything like that, it must just be typed and after flash sees the correct keys pressed in the correct sequence it will fire a function.
I have seen this done before in a situation where a website had a background administration application, and when browsing the site you could just type admin, and a window would pop up asking for a username and password, so that is almost exactly what I want. Because of this I figured I would try to replicate the admin application first as it should be simpler
This is what I have thus far stage.addEventListener(KeyboardEvent.KEY_DOWN, keysPressed); var keyCatcher:Array=new Array(); var keyCatchNew:String; function keysPressed(e:KeyboardEvent):void{ if(e.charCode==65 || e.charCode==68 || e.charCode==77 || e.charCode==73 || e.charCode==78 || e.charCode==97 || e.charCode==100 || e.charCode==109 || e.charCode==105 || e.charCode==110){ keyCatcher.push(String.fromCharCode(e.charCode)); [Code] .....
I have a basic presentation which will have basic interactivity for the user. i.e. The user clicks on a play button, and the presentation plays, the user clicks on a back button, and the playhead steps back through the animation. I also want to provide keyboard shortcuts to do the same thing, so the user can also hit the spacebar to play the presentation, or press the left arrow key to step back, etc.
I've successfully gotten both the click interactivity and keyboard interactivity to work... but only separately, when I try to add them to the same file, it breaks. I also think I've figured out why. The problem seems to be that if I click a button that is only on the timeline for SOME of the frames, the KeyboardEvent listener no longer triggers.
I have a rewind button that will jump the playhead to the start of the presentation. However, from a use design standpoint, I really only want the rewind button visible/clickable if the user has advanced a bit into the presentation (i.e. frame 2 or beyond) because having the rewind button active on the first frame of the presentation can be confusing because it makes it appear to the user as though they can still rewind further, even though they've reached the beginning. I want to take a similar approach to a play button... as long as there are frames to play, the play button should be active; however, once you reach the end, the play button should dim down and not be clickable anymore, which serves as a visual cue to the user that they have reached the end of the presentation.
So, previously (in AS 2.0) this was not a problem. On the frame I wanted the rewind button to be "disabled", I would just turn the Button Symbol into a Graphic Symbol which would make it unclickable and remove any script, and then I would dim the Alpha of the Graphic. So, on frame 1, the rewind button would actually just be a transparent Graphic, and then once the playhead goes to Frame 2, it would be a Button symbol that could be clicked. This technique apparently will break the new event model in AS3. If you look at the FLA I have attached (just change the extension), you can see that when you first "Test Movie"... any keyboard press outputs a trace statement that shows which key was pressed. However, if you hit the play button to play a little of the timeline, and then click the rewind button (instance name of rewind_btn) which jumps the playhead to frame 1 (where rewind_btn doesn't exist, because it's a Graphic now).
Now my Keyboard listener doesn't trigger!
I've even tried testing to see if the KeyboardEvent listener still exists by using the hasEventListener("keyUp"), and it returns as true, so the listener is there, it just doesn't trigger anymore How would I go about solving this problem? Because I can see this being a huge issue in a more complicated project, because I could see scenarios where you only want certain buttons to exist on certain frames
I'm having what's probably a very basic problem, but I keep getting this error message: Error 1079: Label must be a simple identifier. I'm trying to have AS navigate through a panorama I made in photoshop and turned into a movieclip (panorama_mc). I want it to move from end to end (registration point is in the center) without going past the end of the photo on either side. I also want to make sure that when you get to the end, you can navigate back in the other direction.
The keyBoard event listeners call on the rotate and unrotate functions and based on the key inputs(A and D) will implement either of the functions and rotate the image or return it to the original upright position. However, I haven't been able to get the function to work. When I press the A or D keys on the keyboard nothing happens. I even put trace() in one of the functions to see if the function will even be implemented but I don't get anything. I put in my Scripts below. Why are the functions not working? Do the eventlisteners fire or are there conflicts? I'm not getting any error messages.
Is there a reason why a keyboard event listener would not work if the flash is embedded in an HTML? The rest of my game is running fine in the background, but I can't launch the movieClip "nextCar." My code is below, if that makes any difference...
function goNow (event:KeyboardEvent): void { thisOtherKey = event.keyCode; if (thisOtherKey == 32) { nextCar.gotoAndPlay(2); parkingQue.play(); tries++; }}stage.addEventListener(KeyboardEvent.KEY_DOWN, goNow);
The keyBoard event listeners call on the rotate and unrotate functions and based on the key inputs(A and D) will implement either of the functions and rotate the image or return it to the original upright position. However, I haven't been able to get the function to work. When I press the A or D keys on the keyboard nothing happens. I even put trace() in one of the functions to see if the function will even be implemented but I don't get anything. I put in my Scripts below. Why are the functions not working? Do the eventlisteners fire or are there conflicts?[code]...
I have two scenes in flash - when you go to scene 2 there is a eventListener attached to the stage to move a movieclip. When I test the movie the only way the keyboard listener seems to work is if I click on the stage first, then the object will move. Is there a solution to this. The code I am using is:
Atm im putting a a game i build into my main flash app.Everything works fine except the keyboard listener.unny.AFTER a mouse click on the 'loaded' swf the keys 'arrow UP' + 'arrow DOWN' start working.I created already a script that loads the listeners IF they are not loaded yet, but i think thats not the problem. Same situation.After clicking on the movie it starts to work, but apparently the listeners are already applied. All other listeners work besides the keyboard listeners.Stand alone(the game swf running by its own) the game works perfectly!btw the game is importing a main document class.
Code: this.addEventListener(KeyboardEvent.KEY_DOWN var keybListenerLoadedUp:Boolean = false;
Now I have 2 movieclip. Mc1 & mc2. I planned to to make mc2 do certain animation and user must input the key within the progress animation of the mc2 in order prevent something happen
I am doing this inside a module containing viewstacks and their childs.Calling onInit() on creationComplete of module.When I am inside one of the childs of a viewstack of this module and press Enter, it doesnt not invoke the listener function at all (bp inside this does not get hit).
private function onInit():void{ this.addEventListener(KeyboardEvent.KEY_DOWN, keyPressed); }[code]..........
ok so i am trying to change a boolean with a keyboard event
my code is this:
Code: stage.addEventListener(KeyboardEvent.KEY_UP, keyPressed); function keyPressed(evt:KeyboardEvent):void { if (evt.keyCode==Keyboard.SPACE) { if (!gamePaused) {
I'm writing an application using a DataGrid DG1 in a MovieClip MC1. The User can click on DG1 and edit it, ok, no problem. But when the User begins to edit the content of a specific cell of DG1, I want to open a dedicated wizard in front of it. In the first step of that wizard popup (MovieClip MC2, child of MC1), there is another DataGrid (DG2) and I would like the User to be able to directly use the up and down keyboard arrows to browse the DG2 content without having to click it first.
But the keyboard events are then captured by DG1. I tried to use a stage.focus, setFocus, I triggered MouseEvents on DG2 but nothing to do, I have to physically click on it before the keyboard events are sent to it. So, my question is: how to, within MC1, tell Flash the keyboard events will be triggered on DG2 ? Can we ask DG1 to loose the (keyboard) focus ?
how i can set the keyboard to landscape in as3? I'm using flash cs5 and air for android and i don't have the auto aspect ration turned on, so what i want is to set the key board to come up in landscape in code.
There are 5 movieclips on the stage (btn0 to btn4). I wanted to change focus pressing Keyboard.UP and Keyboard.DOWN. But the focus changes not in correct order. It jumps in mysterious way from 0 to 2 and so on.[code]
How can I actually change the Numeric Stepper value by entering a number via keyboard without having to press enter or click another Numeric Stepper?I've tried everything, including keyboard events, but had no success.
I've uploaded a Chatango chat-box on a site of mine, and it worked fine, until I added <'param name="wmode" value=" transparent"/> to make the Chat-box transparent, because it fits nicer to my site. In that case, the browser would take as a default that my Keyboard is set to English, and so I cannot use some characters, while some others are switched, because I'm otherwise using a Slovenian keyboard setting. How do I make the chat-box transparent without the change in my Keyboard language?
in my player.as file i have used senocular utili class to create movement using arrow up down left and right. and firebullet using space button.how can i change this so the player moves to the A, S, D, W keys instead and fire using R here is the current code i want to change in my player.as class
Code: public function loop(e:Event) : void { if (key.isDown(Keyboard.LEFT)) x -= speed;
how to change the directional arrows to keyboard letters on keypress. the browser scrolls when i press arrow up and down arrows and it's quite annoying. i just want to change the keypress of up arrow to w, then left arrow to a, right arrow to d and down arrow to s. just one of any will do then i'll do the rest.
here's the code:
function detectKeys() { var ob = _root.char; var keyPressed = false; if (Key.isDown(Key.RIGHT)) {
I have a scene with a monster. Monster blinks its eyes. Eyes blinking is a separate MovieClip. Under some conditions, monster opens its mouth. Mouth opening is a separate MovieClip as well. At this moment I have to hide eyes MovieClip. As soon as monster closes its mouth, I must make eyes blinking visible again. My idea is to have some listener that listens to Mouth_opening MovieClip. When Mouth opening's currentFrame changes from 1 to 2, I will hide eyes. When it changes from 2 to 1, I will show it back.
So, the question is: how do I listen to currentFrame changes? Event.ENTER_FRAME is not appropriate: it's being called every render frame, not only when currentFrame changes.