ActionScript 3.0 :: Listen Movie Clips Itself For Keyboard Events Instead Of Stage.addEventListener?
Dec 3, 2009
Is there a way to listen movie clips itself for keyboard events instead of stage.addEventListener ??I work on a project a kind of game and ı need mymovie clips on stage rotate with keyboard events such as KEY_DOWN key.code LEFT or RIGHT.I tried to add event listener my MC but it didn't work.If I listen to stage every Movie Clip in my stage start rotation same as the others.What should I do? Here is my codes
I have 2 scenes. In both scenes, I have a movie clip that moves via keyboard control. If the goto next scene is triggered by the movie clip in the first scene the keyboard control works in the second. However, if I use a button to move to the next scene then there isn't any control over the movieclip in that scene. I've traced the keyCode in the second scene and it is picked up but the switch statement doesn't run. I'm migrating to Actionscript 3.0 and updating something I created in 2.0. I would like to do it without writing a class.
If I plan to implement 100 objects on stage to be listen to mouse and keyboard input, is using "function" call responsive enough? How good does eventlistner work?
I'm creating an AIR application that loads a child SWF. The child needs to read keyboard input (for a game), which I usually do by adding a keyboard event listener to the stage property, like this: stage.addEventListener(KeyboardEvent.KEY_UP, onKeyUp)
However, the child SWF is apparently not allowed to access the stage property because the parent SWF owns the stage, so I get a security sandbox violation. So I need to do one of two things:
Bypass the security restriction allowing AIR to load SWFs that have an absolute path (local path), and allow that child to access the stage, orGet keyboard events to be heard by some display object other than the stage, without ever calling "stage" (this includes stage.focus).A few things I have tried already: Security.allowDomain() does not work. AIR thows an error saying that allowDomain doesn't work in the AIR sandbox. Also, adding the keyboard listener to the child's document class (then clicking inside the SWF) doesn't work.
Is it possible to create an event listener that will listen for an objects (movieclip in my case) x position ? I know i could create an Enter_Frame listener with an if statement but the problem is the mc in question has multiple instances being called and I want to destroy each one as they leave the stage.
handling global keyboard events in Flex, is to attach a listener in the application complete event of a Flex application. However, no matter what I try, I have not been able to catch events without clicking on a point on the page, which is hosting my Flex application. Moreoever, if I use a Flex component in a web application, where there is also html and Javascript, I'd still like to be able to grap global keyboard events, even if the embedded flex component (in flash player) does not have focus. So is there a reliable method for connecting flex applications and components (when they're embedded in a web page) to keyboard events?
I'm having a problem with this menu tutorial I followed from ASGamer. I have done and used most, if not all of the tutorials from that site.Anyway my problem is their base menu class;
I'm looking for a way to "inject" some events into a flash movie running on a browser. I know about ActionScript's ExternalInterface.addCallback function, however I'm trying to achieve this with any "random" flash from the web. Eg. send a "SPACE" keyboard event to a youtube video.
I have multiple movie clips on stage (all in separate layers, of course) as well as buttons on stage to play each movie clip. There are buttons inside each movie clip. The problem is that the buttons inside the top layered movie clip work, but the others in the movie clips below don't.
click once on the screen with your mouse and then you can control the man with arrow keys on your keyboard.i can't figure out why the man turns back to the right if he is facing left if you press the up or down arrow. this is one of my first scripts,it's not set up right here is the code:
Code: function rightKey(yourEvent:KeyboardEvent):void { if (yourEvent.keyCode==Keyboard.RIGHT) {
For the last few months I've been just experimenting with different actionscript elements, and Ive slowly built up a stick figure to move around on the Stage. He can collide with platforms, jump, etc. and there is an appropriate animation for each movement, and there is gravity effects, you get the idea.Well, normally, I just use the following method to activate a animation when I press say the Right Arrow Key:
if (Key.isDown(Key.RIGHT)) { guy.gotoAndStop("runRight"); guy._x+= moveSpeed;
Im Using Flash Basic 8, Here is what I am trying to do:
For the last few months I've been just experimenting with different actionscript elements, and Ive slowly built up a stick figure to move around on the Stage. He can collide with platforms, jump, etc. [code]...
But the problem is, the Movie Clip associated with the frame "punchRight" does not loop. It just goes to the first frame and stays there. I verified that the issue was not the Movie Clip or the frame by replacing the D Key, with the Right Key, and the animation played as I would expect.
My project is to allow web visitors drag furniture onto a floor plan. I need the items to all be independent of each other with the drag and drop and then be able to rotate each item with a keyboard arrow.
The code I have allows all to drag and drop but I can only get the code to rotate one item. My Action Script 3 code follows:
I have made buttons within movie clips as I want the buttons to fade in from alpha 0-100. Also, the buttons have an Over state, so when you hover over the button the colour of the button changes from maroon to grey.I originally used this code to link from one frame page to another:
on (release) { gotoAndStop(3); }
however it just made the button disappear, so I tried using frame labels instead with the following code:
on (release) { _root.gotoAndStop("menuLabel"); }
The above code allowed the button to link from one frame page to another, however the only problem is that it has somehow stopped the mouse Over event from working (the maroon to grey).I have used the following code to correct the mouse Over event error, but now the button itself isn't going to the specified frame.
If two or move movie clips overlap, everything underneath the top movie clip does not seem to receive mouse events. I tried many things, including setting ".mouseEnabled = false;" on the top movie clip and its constituents, but it still eats up all mouse interaction. Is there a way around this? Listening to all mouse events and using hitTest is not an option in my case.
I have a project in AS2, and my question for that was posted in AS2 thread. But in the meantime, I was considering switching the project entirely to AS3 because AS2 is giving me a headache.
Basically what I need to have is this:
When you rollover the btn "learn how" a toggle window expands and a countdown movie clip starts. When you roll off the btn, the window and movie clip will both disappear. That works perfect. The next part is what is tricky for me. (to better make sense of it, the countdown is there as prep to a graphic movie clip. So if the user sees the countdown and decides they dont want to see the graphic movie, they can simply rollout with the mouse and the clip will go away.
Now...if the countdown plays all the way through... I need the second movie clip to start. The tricky part, is that when that movie clip starts.. it should no longer have the rollout mouse function. I need it to stay there unless the user clicks an Exit out button.. which I haven't done yet, because I have no idea if I can even get that far.
I am able to disable mouse events on a movie clip with a single frame using the mouseEnable property and setting it to false.However if the movie clip contains multiple frames setting the property to false does not disable the mouse events.Do I need to disable for each frame of the clip? Or is this outside the box for movie clips.I have tried .enable and .mouseChildren to false also.I have alternatives to what I am trying to do so I am trying to determine if I am missing something.this is basically my code, this code will ignore events if I change the movie clip to a single frame.The multiple frame movie clip is made up of 5 frames of bitmap symbols and functions properly.
public class Main extends MovieClip { private var contract1:MovieClip=new CONTRACT ;//multiple frame mc public function Main() {
I have an SWF that has been provided to me that I need to load. Inside that SWF are two buttons ("cancelButton" and "proceedButton"). Is there any way that I can add event listeners to these buttons from within my action script after I have loaded the SWF or do I need to get the SWF creator to create event listeners on the buttons that can bubble to me?
A swf (my game framework) loads another swf (a game). The game is loaded into a child domain which seems to be the default domain for loaded swfs.
The framework listens for custom events bubbling up from the game. However, the framework only receives events dispatched directly from the games document class but not from any of the games children.
Bubbling is set to true on everything, but it's not working? Is it only possible to dispatch events from the document class of the loaded swf.
I'm trying to detect when pop ups are visible (including tool tips if possible). The reason is that I need to hide or freeze (capture a snapshot) the Stage* components (StageWebView, StageVideo, StageText etc) when pop ups appear.
I'm using an accordion container that has it's creation policy set to auto. One of the accordion's children is a spark border container that has a data grid within it. Currently, I'm using the data grid's creationComplete property to call a function; similarly, I'm using the dragComplete property to call another function.
How can I add listeners for events (creationComplete & dragComplete) via actionscript? The obvious problem is that the accordion does not create all its children on creation (nor do I want it to), so I can't simply use something like: datagrid.addEventListener(...)
Is there a way that a flex based application (in the browser or AIR) can listen to windows events (or any other OS) when it is not in focus?Lets say that my AIR application is minimized and I want her to be notified when ever new data was copied to the clipboard?
I'm trying to listen for events sent from my main movie swf from inside a preloader shell swf.Inside Preloader.swf, I load my Main.swf in the traditional way, with a loader object and I listen for progress events on that. These progress events make my preloader bar scaleX increase, like normal. But, I have an XML file and an image that load inside of my Main.swf as soon as it is loaded. I would like for these unloaded bytes to be shown in my Preloader.swf before the Main.swf gets added to the stage.right now, I am sending the totalBytes from the XML file and the image to my Main.swf document class, which, in turn, dispatches a custom "PreloaderEvent" that holds the total number of bytes.
In Preloader.swf, I add an event listener to the loader ( which holds main.swf ), listening for that PreloaderEvent.Can events be heard in this manner and is this the best way to be preloading this type of file ( one where main.swf loads in the first frame, then starts loading of external images after the swf is running ).I'm just not sure how to get all of those extraneous bytes into one location for my preloader to see at the same time.