ActionScript 3.0 :: KeyboardEvent Listener Not Listening?
Mar 22, 2010I made a document class and created an instance of a keyDetection class
Code:
//Document Class
package com
[code].....
I made a document class and created an instance of a keyDetection class
Code:
//Document Class
package com
[code].....
Why KeyboardEvent listener (AS3) does not react until I add it to the stage and not when I simply write it down in the Document Class just like I do with any other function? I mean, I have to write[code]...
View 1 RepliesI'm getting this weird error, don't know why, I've reduced the code to minimum and found the source of the problem but I don't understand why it errors.
Main.as
package {
import flash.display.MovieClip;
[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, 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).
trying to use some code I have used in the past to pass args through an event listener. This is what I am doing, using an inline function. I dont completely understand how it all works, but know that in one open FLA it works and in the other it does not. The error thrown is #1178: Attempted access of inaccessible property spotlightBox through a reference with static type..." SpotlightBox is the name of the function I'm trying to pass data to.
The main difference in the two FLA's is that, in the broken one, it's constructed inside a for loop. My work deadline is in tomorrow and I am stuck. This is being used inside a with block for each sprite:
addEventListener(MouseEvent.ROLL_OVER, function onRoll_Over(e:Event) { spotlightBox(e, new Array("5"))});
And here is the function:
function spotlightBox(e:Event, arg:Array):void{ trace(arg[0]);
}
I have built a flash movie that is located here: http:[url]......For some reason after the timeline plays through completly (after the "headshots and potfolios" slide) the listener on the "child and family portraits" button stops listening or responding. Why is that? All the other event listeners are behaving themselves except this one? Here is the actionscript:
McChild.addEventListener(MouseEvent.MOUSE_OVER, fl_MouseOverHandler);[code]...........
so i have an event listener a mouse click in a movie clip name "em_contact" i also have an event listener after an animation plays out on an object called contactbtn_mc, How do i tell Flash once em_contact is clicked dont listen for that event any more?
my code is below
em_contact.addEventListener(MouseEvent.CLICK,gotocontactanimation);
function gotocontactanimation(EvntObj:MouseEvent):void {
[code]......
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]..........
this is the error I am having:
TypeError: Error #2007: Parameter listener must be non-null.at flash.events::EventDispatcher/removeEventListener()
at project1_fla::MainTimeline/btnName()
here is my code:
ActionScript Code:
import caurina.transitions.Tweener;
import caurina.transitions.properties.ColorShortcuts;[code]..........
Line 1 Frame 1:
[Code]...
I am trying to trace the results of my listener when the browser is resized...no avail. Are you able to see what I am doing wrong?
I am having a weird problem with scope/reference. I am using a loop to preload a number of thumbs in one go, I am creating a different listener for each one on the fly and then passing event handlers for each one of them. This should not be difficult using a loop, but somehow I cannot access the the parent object on my listener and therefore I can't do much with my thumbs after they are loaded.Here is the relevant segment of my code. myThumb_mc is a temporary variable that does not exist when the loop finishes, you can copy and paste this code to test it though. It should work to that extent. (you'll need an image1.jpg to be in the same directory)
Code:
var myThumb_mc = _root.createEmptyMovieClip("myThumb_mc", _root.getNextHighestDepth());
myThumb_mc.clipLoader = new MovieClipLoader();
myThumb_mc.clipLoader.loadClip("image1.jpg",myThumb_mc);[code].....
The code above works, but it does not look nice and it cannot be the right way of doing this. Long question short, how can I access the parent of a listener from a listener object? ._parent does not work.
I'm a Flash newbie and I'm trying to get some keyboard action going. I've followed some tutorials, but nothing seems to work. To test it I created a brand new fla file and added the following code in the first frame:
[Code]...
The first trace ("Add listener") shows up in the debug output, but no matter which keys I press I can't get the function to be called. Am I doing it wrong?
Alright I'm new to Keyboard event listeners so I might be making a really obvious mistake that I don't know about. But what I want to do is, when someone types the letters for the word 'BROTHER', then it appears on the screen and it moves to the next frame. Here's the code I have atm I currently have the letters for 'BROTHER' each as a movie clip. The instance names are, RKey, OKey, etc.
[code]...
Now, is this the only mistake in my thing? Or are there more mistakes? How do I fix it?
I have an error on my KeyboardEvent and I can't find what the problem is. The file of my class is mc_boog.as and when I compile it returns me this error: 1046: Type was not found or was not a compile-time constant: KeyboardEvent.
View 2 RepliesI currently have an AS3 fla with a couple of mouseEvent functions but now the client wants to add a KeyboardEvent as well to the same exact functions. Can I add another eventListener to that without having to create a second function? It would be a huge waste of code if I did. Here's what I currently have in truncated form:
rightArrow.addEventListener(MouseEvent.CLICK, slide_right);
leftArrow.addEventListener(MouseEvent.CLICK, slide_left);
function slide_right(e:MouseEvent):void {
[code]....
I'm trying to add a KeyBoard event in addition to the MouseEvent I already have for my function. So I set up the following code to handle that but it's giving me 1136 errors looking for an argument inside the parenthesis when in reality, it doesn't need one.
stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyPressed);
function onKeyPressed(evt:KeyboardEvent):void {
switch (evt.keyCode) {
[code]....
I'm using very basic code to move an object around the stage using keys on the keyboard (W,A,S,D). However, I have noticed at times when the CPU hiccups, flash does not register that a key was released and in turn my object keeps moving in a direction without any keys pressed. The only way to stop the object from moving is to press the key corresponding to the direction the object is moving.
View 9 RepliesI had a problem with KeyboardEvent in ActionScript 3.0,I created a simple shooting game, the game has 2 Frame,
1. Title Game (Frame 1)
2. Game Playing (Frame 2)
The problem is in Frame 1 when Button is clicked playinggame then switched Frame to Frame 2 where the game takes place where the user can move the aircraft by using the keyboard, (Left Arrow, Up Arrow, Right Arrow & Down Arrow).But when a keyboard button is pressed, KeyboardEvent not react at all, and aircraft can not be controlled.Even more bizarre when the stage at the click KeyboardEvent can react and aircraft can be controlled.how to keep the button is clicked playinggame in Frame and the Frame 2, the aircraft can still be controlled using the keyboard [URL]
In the keyboardEvent, the ENTER key is not responding.. why?.... any other option is there?
[Code]....
I'm trying to rotate ou flip an object with Keyboard Event with this code
stop();stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyPressed);function onKeyPressed(evt:KeyboardEvent):void { switch(evt.keyCode) { case Keyboard.R: mod.rotation +=
[code].....
I made a login (textfield and a button).
mybutton.addEventListener(MouseEvent.CLICK,loginCheck); // This is my button
function loginCheck(event:MouseEvent):void { // My function code here
}
In order to make login using Enter button, I tried adding:
[Code].....
But of course it won't works because loginCheck is a MouseEvent function.
I´m making a game.This game has 4 frames.It has a preloader.swf and game.swf.The preloader.swf loads the game.swf.The game.swf has 4 frames.In the first frame is given to the user the options to play the game (clicking a button "playGame" on "click" event) and to set the sounds settings (clicking a button "options" on "click" event).So far so good.
When the user clicks "playGame" I send the user to frame 2, where it has the option to select a game level using the arrow keys. So within the playGameListener I registered two keyboard events one for KEY_UP and another for KEY_DOWN. So, to have sure that it´s working, I added a trace for each keyboard event listener. But I´m not getting any message in the output window while pressing
left arrow or right arrow or any arrow.
So I learned that KeyboardEvent only dispatches an event if the flash player has focus.Well I think the flash player has never losed focus in this process.I´ve registered two events for Event.ACTIVATE and Event.DEACTIVATE and inside its listeners I added a trace with a message. Flash outputs me a message if I minimize the flash player window or if I maximize the flash player,but not while the game.swf´s frame transition.The listeners for the KeyboardEvent works only when I press at the flash player, then I receive the messages from the KeyboardEvent listeners.
I'm new to ActionScript development and am using the FlashDevelop IDE. I've been playing around with some really simplistic things and have come across a problem I can't seem to solve.My application compiles and runs, and a function that watches click events fires perfectly and I can see the event in the console when I pass it to trace(), yet the same code watching for KeyboardEvent fails to fire at all.Here's my code:
package GameTesting
{
import flash.display.Bitmap;[code]............
The MouseEvent trace() fires every time as expected, but KeyboardEvent never fires, no matter what key I press.
I created a Paddle class that doesn't do anything yet. However, I don't think it is working.[code]...
View 2 RepliesOk, so I am creating a slideshow presentation in Flash CS5. The code is very basic, however it does not work as intended. It's supposed to go to the next frame if i press a button, or press up/right arrow on the keyboard. However, the keyboard only works after I've pressed a button once.
my code:
import flash.events.MouseEvent;
import flash.events.KeyboardEvent;
slides.stop();
[Code]....
slides is a movieclip, where I've stored all my slides (Oh, by the way, I know my setup isn't the best, but I wouldn't use a lot of time on it, as it's for a religion class). FB is forward button, and you can guess what BB is..
Ive been using the 'event' parameter for my KeyboardEvents and MouseEvents in a recent project ive been working on for my course (VERY BASIC).Im not entirely sure on what the 'e' part of e:KeyboardEvent actually does, and ive been asked to find out what information the parameter 'e' can actually access when using it.
EDIT: If A method takes the parameter (e:KeyboardEvent). what information could we access through the use of the parameter e?
I have a problem with a game I am working on which where keyboard events do not get registered properly. Here is my setup.I have four frames in the main FLA.1) main menu
2) instructions movie clilp3) game movie clip4) game over movie clipThe game is basically a racing game. Once the game class initiates (3rd frame) I create an instance of the car class and place it on the track. I listen to the keyboard KEY_UP and KEY_DOWN events in the car class. The problem is once I click the START button everything works fine except the keyboard event listeners. They do not get registered unless I click on the stage once. Here is the constructor and init() from my car class.
Quote:
public function Car(startingX:Number = 100, startingY:Number = 100, rotationOf:Number = 0) {
[code]......
The keyCode property only stores one Key. This means that, if I was making a game for example and wanted to have it so that if the up key and the left key were pressed it would move up and left at the same time.I've tried extending the keyboardEvent class and storing the keyCodes in an array, but It returns an error.Here's my class.
package{
import flash.events.*
public class KeyEvent extends KeyboardEvent{
[code].....
End point I want to get something like this "stage.1addEventListener(KeyboardEvent.KEY_DOWN,ke yPressHandler);" working in a dynamically created object eg PlayerShip. The afore mentioned line works fine when in a static object , that is to say one I dragged from the library to the stage prior to compiling. However when I create the object 'PlayerShip' using script in my main time line I get the following output:
[Code]...
I'm having a little problem with a website i'm trying to build here.URL...So what i want is the following:Now the first thing you have to do is click on the little van to focus on it, this is done by:[code]But what i wan't is that you don't need to Click on the van before you can control it, so that when you push the right arrow the van automaticly starts moving.Because when i wan't to start adding other buttons on the houses the website starts to freak out (focus switches etc etc...)[code]any comments on the IF function to move the van are always welcome, cause i do believe there has to be a way to write this in a more effective way.
View 3 Replies