ActionScript 3.0 :: Get Keyboard Event Listener To Work?
May 3, 2010
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?
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);
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]..........
I am trying to learn JavaScript and I am wondering whether JavaScript has a event listener just like ActionScript's ENTER_FRAME. Basically, I want this event listener to listen "all the time" not just wait for any particular instance (mouse click, keyboard event) of event.
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"?
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.
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]...
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;
I decided to pick up a copy of O'reilly Actionscript 3 Cookbook today, and I have been going through. One of the first examples it has for keyboard events is:[code]But for some reason it will not work. According to the book stage.focus = this; is all you need for keyboard events to work, am i doing something wrong?
I'm creating a minesweeper game as my first flash project, but I'm already stuck on something technical. I have created a button named Button which contains a bitmap. I have a lot of instances of that button on stage, and they are put there by actionscript using a for-loop. Their instance names are button0, button1, button2, button3, etc.
This is the code for the eventlistener: It's in the first keyframe of the actions layer. var buttonListener:Object=new Object(); buttonListener.click=function(evt:Object):Void{ trace("clicked"); } for (i=0; i<rows*cols; i++) { eval("button"+i).addEventListener("click", buttonListener); }
I also noticed that when I do this for one button that I created myself and put on the stage manually, this also doesn't work, but when I pick one of the predefined buttons, it works just fine.
and I have the ClassPath pointing to the folder that contains this .as file. I do get the trace "In setUp" but I'm not getting seeing any Keyboard events. There also aren't any errors showing up in output so I am kind of stumped.
Im trying to make a game at the moment, with a little character who runs around the screen. To do this i have keyboard event listeners on the character.I have an inventory which opens when you click a button, and has number of things to click on.My problem is that when i close the inventory, by clicking the close button, my keyboard event listeners no longer work on my character.
Keyboard events also dont work on the stage at this point, and i cant understand what i need to do.Its as if nothing has focus anymore for keyboard events. Mouse clicks still work fine.
This works beatifully when I am running a test movie on my computer, and even the fully published SWF. But when I load it on the web server, and run it in a browser. This doesn't do anything. Once the audio is done, nothing happens.
I have a movieclip with 3 frames. each frame has a button on it. Using actionscript I jump to a frame then add an event listener to that button.However, it doesn't work since the playhead for that movieclip doesn't actually get moved to a different frame until the frame redraws. So actionscript says the button doesn't exist.(other than not dynamically adding the buttons with code... which will be my next step...)
TypeError: Error #2007: Parameter listener must be non-null.at flash.events::EventDispatcher/removeEventListener() at project1_fla::MainTimeline/btnName()
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 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.
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 question to ask about asynchronous key controls This was what i did
[Code]...
and i checked with [URL]...?newspage=6249 and it looked more or less the same, so why is it that when i move my character and when i hold down a key, it just keeps on listerning to that keypress event listener, instead of just executing the other event. So say, i tap left and after which i tap right, it will work just fine, but if i hold left and tap right, the event listerner will still be listening to the left key. So, i was wondering could anyone point me in a direction as to how should i make my code stop listening to an event as soon as another event has been dispatched?
When game starts, the car runs automatically. Then we click the SPACE button, movement of car stops. And the door of structure near car is available to CLICK.
But in coding I got this error code:
TypeError: Error #2007: Parameter listener must be non-null. at flash.events::EventDispatcher/addEventListener() at shfg_fla::MainTimeline/key_pressed()
This is some part of my game code...
case Keyboard.SPACE : removeEventListener(Event.ENTER_FRAME,car_movement); --street_mc.bluehome_mc.door_btn.addEventListener(MouseEvent.MOUSE_DOWN,door_ready)
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.
I have a question about making a function for two different kinds of event. It's not critical but I would like to reduce my lines of code and just be more efficient. Basically I have a button on the stage called "Enter". I also want the user to have the option of hitting the enter button. I don't have a problem making these two separate handlers for these events (i.e. one handler for the KeyboardEvent and one handler for the MouseEvent):
how can you switch the mouse event with keyboard event in the folowing example:
Code: var qno=0;var rnd1; var rnd2; tick.visible=false;cross.visible=false; var right_answers=0;var wrong_answers=0;
[Code]....
i know that u have too define key up and down functions and in the beginnig give the keys we are using the false value, but how to make it that after i pess of a key you cant press in again unless you go to the next question that is the enable_disable in the following code. How would that function looked in case of keyboard event