Flash :: Make Flex Only Consume Mouse Scroll And Keyboard Events?
Feb 5, 2011
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.
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'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.
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?
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,
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]....
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.
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);
I'm working on a Flex 3 app, implemented in Actionscript 3 and MXML, that includes an embedded video player, which is essentially a black box--I load it as a SWF from another site on demand, and I don't have access to its source code. It does, however, inherit from Sprite.The problem is that, when focus is on the Flash app, the video player is somehow receiving and processing keyboard events, even when the player itself isn't in focus.So when users are typing text elsewhere in the GUI, if they hit the space bar, the video pauses.
I've tried intercepting key events in the Sprite's parent, and setting tabEnabled = false, tabChildren = false, and buttonMode = false on the Sprite, but nothing seems to work. It's as if the Sprite is getting keystrokes through an alternate Event path.how I can prevent the player from receiving keyboard events or input events entirely? It's fine with me if no input events reach the player, since I've implemented my own,separate video controls.
I have another problem with my scroll pane. I now have a bunch of Loader objects that are used to display thumbnail images in a scrollpane. I want to add a MouseEvent.ROLL_OVER event so that when I a person rolls over an image there will be some buttons displayed, IE a remove button so the user can delete an image from the gallery. However my ROLL_OVER and ROLL_OUT events are firing like CRAZY when I place my mouse over a picture. Right now I have the roll over and roll out events set to just hide the image (so I know that it's working). But all that happens is the image flashes....
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"); }
Is it possible to say, make an application that passes its keyboard events to other programs?Like if I typed something into a text field in flash it would also "type" it into chrome, microsoft word, notepad++, ext.
I have a banner with big invisible button covering the stage and underneath it I have movieclips which must respond to mouse events. But I can't get through invisible button. I only get button events and cant interact with movieclips underneath it. Here's simple code:
invisibleBtn.addEventListener(MouseEvent.CLICK, onTopClick); bottomMc.addEventListener(MouseEvent.MOUSE_OVER, onBottomOver); function onTopClick(e:MouseEvent):void{
Yet only sometimes when I press keys does it actually invoke. I have no clue why, I thought maybe something else has focus. Well I cannot add key listeners to NativeWindow or NativeApplication, and I would assume if it is on the WindowedApplication which is the root element, that as long as my application has focus the key presses should invoke the listener.
I am writing an AIR application in Flex. The application needs to be able to handle shortcuts on both Mac and Windows. I have the shortcuts on the Windows side working, but the same application on a Mac doesnt seem to trigger the commandKey property on a Keyboard event when the user is also using another key in combination (ex. command+g doesnt work)
I have a Sprite which is a child of a Flex object, and acts as the main "game window". So during game-play it should get keyboard input but at other times not. When I add a keyboard listener to it, it never fires.
Do I need to stop parent objects 'eating' the events somehow, or something similar? I get the same thing with mouse-wheel events, but mouse-click events are fine. Sprite doesn't seem to have the concept of focus unless I missed it.
More generally in this kind of approach, are there any suggestions on the best way? For instance some keys might still be needed to be intercepted before getting to the game-window, like ESC or F1 or something... the aim is the game-window isn't aware of other UI.
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?
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?
If my understanding of Flex is correct, skins in Flex are just DisplayObjects that are added as children to UIComponents to create the visual representation of the object. But if my understanding of the Flash event model is correct, if there is a non-transparent DisplayObject on top of another, mouse events will go to the topmost DisplayObject. The overlapped DisplayObject won't receive any mouse input.
So how is it that skinned Flex UIComponents work at all?
I am looking to provide some UI functionality using the mouse- I have two distinct UI events to be achieved via mouse
a) change value b) delete object
I don't seem to have sufficient mouseclick events for both. I am avoiding using the right click as it has some default options(whose signing off will affect the whole project- not just this). I have mouse click used for change value- how do I use the doubleclick as the single-click events seems to get invoked prior?
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 know you can use the mouse wheel to scroll through text in the flash componenet scroll pane, but is there a way to set it up to work with the code I have posted below?
fscommand("allowscale", "false"); bar.useHandCursor = dragger.useHandCursor=false; space = 5;[code].....
is there anyway when i use scroll bar component in flash... how do i make it so that i can be controlled by your mouse scroll button.. thing.... ( if its possible )
currently learning AS3 and having a bit of trouble with keyboard events. I feel like I understand how they work, but something about my implementation is faulty. This is basically the code I currently have, and I can't find an error in it based on tutorials and such that I've looked up:
I am having endless trouble trying to get flash to scroll with a mouse scroll wheel on both PC and Mac. Pixel Breakers code "swfmacmousewheel" seems to be the way to go but despite everyone raving about how amazing it is and showing many version of it working very nicely, I cant get it to work. I've followed all the instructions I can find as carefully as possible but I get nothing. I just want something similar to this > [URL]
I want to handle the mouseevents for all the sprites on the stage including the one those are hidden behind (or overlapped or occluded) and the main condition is that I want to handle the occluded sprite (that hidden behind other sprite). example, say I have sprite1 and sprite2 on stage and I want to start drag whenever i click on the sprite and stop drag after another click.
This can be done easily, but the problem and my main requirement is that if I drag the sprite1 and drop it exactly on top of the sprite2 then sprite2 will be hidden behind the sprite1 I wont be able to drag the sprite2 without moving the sprite1 first. if you have played zynga's empires and allais game on facebook, it is handled seperatly, it is how it works in that game, the mouse event is triggered on the sprite behind the overlapping sprite, if you have two sprites overlapping one sprite than the mouse event is triggered on the sprite which is last and not the one in front irrespective of whether there is only one sprite overlapping or two or three and this happens to irregular shaped sprites (not just rectangles)