ActionScript 3.0 :: No Keyboard Events Until Mouse Click?
Jun 2, 2011
i'm using actionscript 3 in FlashBuilder 4.5in my top-level class that is derived from the Sprite class, i added a keyboard listener:stage.addEventListener( KeyboardEvent.KEY_DOWN, HandleKeyboard );i don't get any keyboard events until i click the mouse button in the screen area - then the events work fine.i tried setting the stage.focus to stage and other various things,
I have a key.addlistener setup to listen to key events. What I want to be able to do is to dispatch key events by for example a mouse click or just on load. I've tried a lot of possible solutions such as dispatchEvent with type as "onKeyDown" and "keyDown" etc.... but key listener simply do not treat it as a keyboard event.
Code: var eventObj = new Object(); eventObj.type = "keyDown"; eventObj.code = 13; eventObj.ascii = 'e'; dispatchEvent(eventObj);
Just wanted to ask if there is any advantage for either using mouse click event or touch tap events, when writing apps for mobiles or tablets (for the iphone especially)?
I know that both of them should work fine, but in term of performance, is anyone better? Are there any things I should be aware of when choosing either?
By the way am using actionscript3 to implement the app.
My client uses IrfanView to play SWF files. Unfortunately, he does not use Flashplayer. In Flashplayer, I can crossover mouse and keyboard events with no problem. In IrfanView, the second I click a button, the keyboard events are disabled. Is there a fix?
what is a way to specifically import only mouse, and only keyboard events? side question but related, also the "addListener" that is used on MovieClipLoaders for example, what specific event import is that using?( the events.* will not work for my particular project and i need to import all of these classes individually )
Code: var mainShapeMaskLoader = new MovieClipLoader(); var mainShapeMaskListener = new Object(); mainShapeMaskListener.parent = this;[code]....
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 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.
are being masked by the existence of any popup windows. The code is in a component, in the constructor. The component is added to the main application in the block.
How can I get these system generated events to not get stopped by PopUpManager display objects?
I have a SWF file that uses Mouse and Keyboard Events. When I test the SWF file in the flash IDE the events work fine. When I run the SWF file stand-alone with the Flash Player, the events work fine as well. But, when I open the SWF in a browser, neither mouse clicks or key presses register. Even if I puslish the SWF as a HTML, it doesn't work either.
My Flex application is heavily keyboard-oriented. It uses 100% of the browser window and I'd like the user to be able to start using it immediately - as soon as it loads. However, it seems that the application is only first "activated" (i.e. the activate event fires) when the mouse clicks somewhere inside it, which is very inconvenient for my keyboard-heavy app.
Can I force an activation of my app at some point during/after it loads? I hope I don't have to display some silly "click inside to activate" overlay every time the page loads..
In certain browsers ([cough] Chrome [/cough]) the focus is lost whenever the user switches away from the browser (or even touches the address bar) and is not regained when switching back. So the solution has to take in consideration not just the first focus when the page loads but also "re-focusing".
I created a button that has a movieclip in the rollover state. When you rollover the mouse, the movieclip will animate to appear as if the button will scale from a small to a large button even though it is the movieclip that is playing and not the button itself. But I also want to add a keyboard code to play the rollover instead of the mouse. I learned to write actionscript to play different scenes with the code below, but I'm not sure if I can play a button rollover with the same code.
stage.addEventListener(KeyboardEvent.KEY_DOWN, key_pressed); function key_pressed(event:KeyboardEvent):void { if (event.charCode==49) { gotoAndPlay(1,"scene"); }
This one's been irking me for a while. When I'm using the mouse scroll wheel to scroll up and down in a webpage, and a flash movie comes into the path of the cursor, the scroll wheel stops working. Also, when a flash movie has focus, you can't use browser shortcuts like Ctrl + L or Ctrl + R.
I'm writing a flex application now and I'd like to find a solution, so that at least my users aren't plagued by this inconsistency of the user interface behavior.
I should think there would be a way to tell flash to propagate such events as the mouse scroll wheel and keyboard input back up to the browser unless they occur in an element for which they are useful, like in a flex textarea. I can't find any solutions out there though, nor even anyone talking about it.
Specifically, how can I make it so that:
When the user is scrolling with the mouse, the browser scrolls unless the mouse is over a flex container with scrollbar, or another component that wants to scroll.When the user presses a button or combination of buttons on the keyboard, it will be propagated to the browser unless there is an active keyboard listener, or the cursor is in a text field, etc.
So I'm trying my hand at writing my first tower defense game and I've discovered a snag. One part of the game involves keyboard input, but if I click on an object to create a tower, then the keyboard stops responding until I click on the background. My keyboard listeners are attached to the stage and the object being clicked is a button in a MovieClip added to the game's MovieClip.
I have a 4 frame game that moves from frame to frame depending on what the player does.On the first frame, I have an intro and a button to get to the main portion of the game, frame 2. The frame loads up and the game code runs, but until the player clicks again on the stage, the keyboard controls do not function.The code for the button is straight forward. I have a button object and the following code in the frame:
playGame.addEventListener(MouseEvent.MOUSE_UP, goodLuck); function goodLuck(evt:MouseEvent): void { gotoAndPlay(2); removeEventListener(MouseEvent.MOUSE_UP, goodLuck); }
I am making the board game Shogi in actionscript 2 and I have a question on how to detect a particular imput.I have a movie clip on the stage, I want it so that if I hold down the keyboard button "p" and then click on the movie clip, it will go to the movie clip's frame 2 (not the entire flash project's frame 2, just the particular icon's frame 2. I need this because I am using movie clips as game pieces and in Shogi, certain game pieces can be promoted. I also was wondering how to detect what frame it is on.
Is it possible to simulate a MouseEvent.CLICK to get fired by just firing first a MOUSE_DOWN followed by a MOUSE_UP.
As per Adobe's doumentation.
"... For a click event to occur, it must always follow this series of events in the order of occurrence: mouseDown event, then mouseUp. The target object must be identical for both of these events; otherwise the click event does not occur. Any number of other mouse events can occur at any time between the mouseDown or mouseUp events; the click event still occurs." [code]...
Banner ads have buttons that ad serving systems use the following syntax to dynamically assign a URL.[code]The clicktag button covers the stage (ad size) and prevents other mouse events like panning. Are there any hacks to get around this? I have a FLA that uses the following AS but the mandatory click tage button disables it the panning functionality.[code]
I'm building a swf wrapper which loads third-party swf games. The client would like a button in the wrapper which will dispatch a keyboard event in the loaded swf.
I'm building a swf wrapper which loads third-party swf games. The client would like a button in the wrapper which will dispatch a keyboard event in the loaded swf.
how to construct a dispatch event in the wrapper that reaches into the loaded swf?
I have made a hierarchy in which there is a main page, using add element i have attached a component mxml of type group. There is a single button on main page when clicked it should add children of type group in that group type mxml component along with two buttons. Now using one of buttons i am attaching another component mxml type group. the problem is even they overlap i can still excess the children groups of first group component mxml.
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 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.
I have a question regarding the use of mouse clicks events in a multi-dimensional array (or a "2D" array as we refer to them in Java and C++).
Background
I have an array of objects each with a corresponding mouse click event. Each object is stored at a location ranging from [0][0] to [5][8] (hence a 9 x 6 grid) and has the specific column and row number associated with it as well (i.e. tile [2][4] has a row number of 2 and a column number of 4, even though it is on the third row, fifth column). Upon each mouse click, the tile that is selected is stored in a temporary array. The array is cleared if a tile is clicked that does not share a column or row value equal to, minus or plus 1 with the currently targeted tile (i.e. clicking tile [1][1] will clear the array if there aren't any tiles stored that have the row/column number
or any contiguous column/row with another tile stored in the array, meaning that the newly clicked tile only needs to be sharing a border with one of the tiles in the temp array but not necessarily with the last tile stored).
Question
What is a clean, tidy way of programming this in AS3? Here are a couple portions of my code (although the mouse click event isn't finished/working correctly):
I have objects that the user can click&drag. They're PNGs, mainly rectangular, no problem till here.But I then had to put an L-shaped object (a PNG with a lot of transparency), so i've made a movieclip with an shape with the same L shape than the png, and use it as its hitArea:
This works PERFECT, the mouse events respond as expected, and I can click on objects that are below/above the transparent area of the png/object.All objects are inside a Sprite called playgroundLayer1. The issue comes when I take the L-shaped object and put it on another Sprite (playgroundLayer2), that is above the playgroundLayer1.I this case, I can click&drag on the L, but no object below the transparent area of the L receives mouse events.
Right now all the sounds (78 of them) on my guitar play using the roll_over event but that doesn't give the user much control over what sound is played.
The actionscript im using to play my sounds is this;
I have an animation that I want to start when clicking on the flash window. However, I've also have some buttons on the stage. If I add an event listener for MouseEvent.CLICK on the stage, then it 'eats up' the events and the buttons don't work.
I've tried some tricks, by adding some invisible buttons on top of the real ones, and use the MOUSE_OVER event to selectively enable/disable the mouseEnabled flag for the stage, but didn't work because it complains that the property or method doesn't exist (which I find odd).
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'm trying to write a simple counter. UP or Space increments a number and DOWN decrements. It's just one big number in the middle of the screen. A bell rings on an increment and I have added code to go full screen on mouse click.[code]...
I'm trying to write a simple counter. UP or Space increments a number and DOWN decrements. It's just one big number in the middle of the screen. A bell rings on an increment and I have added code to go full screen on mouse click.
Test mode works fine ( except for full screen of course).
Seems to work fine on the local machine using Safari 3.2.3
However if I try to run it locally using firefox it does not work.I need it to run on a laptop but it does not always acknowledge the keyboard events and while in full screen it never responds to the keyboard events.Laptop is running Safari 3.2.1
import flash.display.StageDisplayState; import flash.events.KeyboardEvent; var chickCount = 0;[code]..........