Javascript :: Flash App Receiving Mouse Events Without Focus?
May 18, 2011
Just wanted to ask is it possible for a flash app to capture mouse and keyboard events when it loses focus. I've tried putting it in a div container through SWFObject library and than used jquery forward mouse events plugin, but without success. My idea was to capture mouse events (click event) on the body and then transfer it to the flash app
i need to track the mouse movements(and register what component is under the mouse), it is done already, but i meet new problem, if click right button then context menu will be opened and no any new events(mouseMove, mouseOver) received by my components. I understand that this context menu is more browser then flash/flex and afaiu the is no way to disable context menu at all. So may be somebody know any trick to avoid this events blocking?
AS2, Flash CS4. We're using ExternalInterface to get callbacks from JavaScript for mouseover and mouseout when the user rolls on or off the .swf on a page. This works fine in all situations except for one:If the .swf is viewed in Mac Firefox, and if there is a button or mc near the edge of the stage with an onRelease() event, when you mouse from outside of the .swf into the button, the mouseover fires correctly; but when you mouse out from the button and continue outside of the .swf, mouseout never fires.We have built a small, simple testbed with only minimal code and assets (ExternalInterface code and a button). We are able to duplicate this consistently, on multiple machines. (again, Mac Firefox only).url....
i have 2 sprites on stage. bottomSprite is added to the display list first, followed by topSprite. topSprite partially covers bottomSprite.i've added an event listener to bottomSprite for MouseEvent.MOUSE_MOVED notifications to simply trace the mouseX and mouseY coordinates. however, the notification doesn't work for the parts of bottomSprite that are covered by topSprite.
var bottomSprite:Sprite = new Sprite(); bottomSprite.graphics.beginFill(0x666666, 0.5); bottomSprite.graphics.drawRect(150,150, 150, 150); bottomSprite.graphics.endFill();
I've some very old Flash applications, which we don't want to rebuild to add a new feature. We simply need to detect when the user has become idle. So, if the Flash application receives no key or mouse events after 3 minutes, we want to track that time till the user interacts with the application again.
We've considered wrapping the applications in newer Flash applications to include the key/mouse event tracking; however, early research shows that some of our apps are so old that they use event systems or AVM's (ActionScript Virtual Machines) that are incompatible. Also, it seems that mouse events on the inner application don't bubble up to the outer application. (I think the direction of event processing is backwards in versions of Flash prior to 8)
Anyhow, the next idea on the table is to see if we can determine when the user stops interacting with the old Flash applications using JavaScript. Can anyone confirm whether or not it is possible to detect, using JavaScript only, when a swf in an HTML document loses focus or key and mouse events stop and start occurring on the swf?
I've added an event listener to my stage like this:
[Code]....
The problem is, some keys don't trigger the event. So if I type "ASDFG" I only get a response for "F" and "G", here's the trace:
PHP Code:
Engine.keyDown 68Engine.keyDown 71
My structure is like this.
Main class is Game.Game creates an Engine and adds the engine to the display with addChild()
EDIT: It seems it's because the keyboard events are being taken over by Flash CS3 and using them to select Tools and not letting them go to the SWF, very very annoying. - Can I turn this off?
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 an application that uses Remote SharedObjects and I am seeing some strange behaviour. I am writing an ActionScript application in AS3 using Flash Builder and connecting to Wowza Media Server 2. My application is working just fine but I am now trying to write unit tests for it using FlexUnit. My unit tests involve creating multiple connections to the same remote SharedObject and making sure that I am getting updates correctly. Everything seems to be working well except that I am not getting any of the SyncEvent.SYNC events with an info.code of "delete".
When I run my applications independently in separate tabs or even separate swfs embedded in the same page it works fine. For some reason though it does not work when inside a unit test. I have also found that if I load the swfs using a Loader inside the same SWF then I get the same behaviour. It seems to me to be something strange about the way multiples of the same SharedObject behave within the same SWF. I have had to work around other strange behaviour in the unit tests such as oldValues not being set properly in the onSync events too.
I am attempting to dispatch an event on the click of any of the buttons in a button array in the document class of my application. The intent is to have an external object receive this dispatch so as to remove a listener for the EnterFrame event in this class.
Here is the Main.as code (document class): Code: package { import flash.display.*; import flash.events.*; public class Main extends Sprite { private var one:MovieClip; [Code] .....
I'm having a problem with a custom subclassed Event class. Or I should say, I'm having trouble receiving events from this custom event class. I'm pretty sure I have everything wired correctly, the event is dispatched properly and my trace shows the Event instance being spawned. However, my eventListener, which is in another class, never fires its handler function.Have any of you run across instances where custom event classes fail to fire? I'm about at my wit's end.
I have a web page where users can play flash games. We are now making some changes to the page which requires the games to be embedded with wmode=transparent or wmode=opaque so that we can show HTML elements on-top of the flash games. The problem is that in Internet Explorer (on all versions) the whole page scrolls if a user presses the up/down arrow keys. I've tried everything I can think of and I've spent a whole day searching for a solution without success.o far I've tried putting the game inside a iframe and I tried disabling the up/down keys with JS, none of which solves my problem.
Without AutoHotkey and Firefox -unfocus since it's involved in operating another program and it doesn't work on linux and without Restore Window Focus After Flash addon since doesn't give you control over flash tabs.implementing this gBrowser.selectedTab.unfocus(); method and bind it to a keystroke in Firefox v3.6 ?I've also tried (based on the addon above)
if (document.getElementsByTagName("EMBED").length == 0) { return; } if (document.activeElement.tagName == "EMBED") {
when I moved my mouse there was a red fluid like velvet effect that followed my mouse and slowly faded.It was really cool and would love to add it to my website.
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 am designing a music player using JavaScript (jQuery) and HTML5, with Flash AS3 to fall back. Basically what I want to do is to be able to click HTML control elements and have them interact with the flash in order to play/pause and skip tracks in the playlist (playlist JSON file read by JavaScript, passes file ID to AS3, AS3 reads another JSON file to get URL, then plays audio)
This enables me to only use the Flash to play the audio, thus creating the same user experience regardless of HTML5 browser support. I'm assuming I will have to 'listen' for events in AS3, however any pointers in how to engage these events in JS and react to the events in AS3
I have a map application that when I use the mouse wheel the map will scale up or scale down. The next thing I want to do is to focus on the mouse pointer while zooming on the part of the map.
I have this code...
function focusMousePosition(){ onMouseMove = function (){ Stage.width = _root._xmouse; Stage.height = _root._ymouse; updateAfterEvent(); }} var mouseWheelListener = new Object();var wheelNum:Number; mouseWheelListener.onMouseWheel = function(wheelNum){ focusMousePosition(); if (wheelNum > 0){ map._xscale *= 0.9; map._yscale *= 0.9; }else{ map._xscale *= 1.1; map._yscale *= 1.1; }}Mouse.addListener(mouseWheelListener);
I want my flash movie to go to a specific frame when the user moves the cursor away from the actual swf file (rollout) in the html page. I tried different things, for instance having a big transparent movieclip in the background and use hitTest:
//this code is in the root level this.createEmptyMovieClip('penCheck', 100000); this.penCheck.ref = this; this.penCheck.onEnterFrame = function() {
[code].....
This doesn't work until the user clicks outside the flash (flash loses focus).
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.
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).
As you see, I try to make my HorizontalList focused when application is loaded. And I actually receive Received focus message in console. But I expected that I would be able to navigate over list elements with arrow keys after setting focus. But that's not the case. They work only after clicking component with mouse. How to make list have focus and respond to arrow keys?
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 want to capture flash events in webpage using javascript. By flash events I mean like, clicking a Button, mouseover, entering text in textbox in flash content (websites). I see adobe flash uses Action script code to get the events in eventlisteners. How can I use the same API in javascript?
I'm new to working with flash and have a quick question about embedding flash with the SWFObject.js file.I can successfully embed an object and play it, but what I'd like to know now is if there is a way that I can be notified when the movie is done being played without editing the flash file itself, since I have no real way to do that.
I wondered if anyone can provide any information on how flash events relate to the DOM event model.My issue is this:body > div > object.The div has a mousedown event which calls 'preventDefault' on the event object.This shouldn't bear any relation to a click event within the objects swf however in IE9 it prevents the swfs mousedown event from firing..I'm struggling to understand how swf events fit in with DOM (presumably they continue to bubble up from the object element?) and why a click event on a div would affect a childs swf click.
I'm trying to put the text back into a text field on FOCUS_OUT one character at a time. On FOCUS_IN, I want to remove the text one character at a time.
Here's the basic code: major.text = "ActionScript 3.0"; major.addEventListener(FocusEvent.FOCUS_IN, inFocus); major.addEventListener(FocusEvent.FOCUS_OUT, outFocus); function inFocus(event:FocusEvent):void { major.text="";// want to clear the text one character at a time } function outFocus(event:FocusEvent):void { major.text="ActionScript 3.0"; // want to put the text back in one character at a time }
I attached a fla. that does this in ActionScript 2.0, but I'm trying to do this in ActionScript 3.0.
i have a question about the mouse down / mouse move events in Flash. I've developed a small intreractive that requires mouse co-ordinates to be captured when the mouse is down and when the mouse is moved anywhere on the screen. It was working fine like this until recently when I checked my interactive in Safari and it no longer recieves mouse co-ordinate information when the mouse cursor leaves the Flash interactive stage area.However, it still works fine in Firefox. Is there anything I can do to get this functionality back when using it in Safari?
In a project i'm doing I have a custom cursor, using the start drag command and mouse.hide. the issue being that the movieclip being dragged is blocking the mouse from initiation mouse events properly.
I have a movie clip I am using as a button (instance name btn1) and I added an event listener to it (using the following line): btn1.addEventListener(MouseEvent.MOUSE_OVER, animate1); the function "animate1" triggers some small animation when the mouse is over the movieclip. my problem is that the animation is triggered both on mouse over and mouse out events.