Javascript :: IE Onbeforeunload Not Firing ExtenralInterface Callback
Feb 12, 2010
I have a Flash movie embeded with swfobject in a html container. Through ExternalInterface I have registered a javascript function to fire callback to my flash app.
I have a ColdFusion function which sends analytics called from a Flex sendPageAnalytics() function to a SQL database when the user navigates - this works perfectly.What I am trying to do is have the Flex application send a bunch of analytics when the user closes their browser, therefore providing information about the last navigation.
I have used an ExternalInterface callback and listener for window.onbeforeunload and a trace statement tells me that this is working fine.My problem is that when all bundled together, I get as far as tracing out that the sendPageAnalytics() function has been called, but I do not get a sendPageAnalyticsFaultHandler() trace or a sendPageAnalyticsResultHandler() trace, which I do on every other sendPageAnalytics() call.
In our app, I am periodically noticing that a particular event handler is not firing. 99% of the time, it works fine, but, every so often, it just dies. How can I find out whats happening? Is the DispatchEvent() not happening/working somehow? Is my listener still listening? Did something else catch the event, and not pass it along so that the 'right' listener can get to it ?
Here's a little bit of the code...
Thats a somewhat pruned down version of what the real code is, but I don't think I trimmed out anything important. The key, as I see it is that we fire up the params dialog, then start to listen for the closed event. Then, we show the param dialogs close function. What happens when it fails is that the trace message "caught close event.." is never generated, and, consequently, the closeHandler is not getting called at all.
I have a flash application that needs to send a http request to the server which will disconnect the existing session immediately. I have a tried a few options but none is reliable.Option #1: On "onbeforeunload" event send a http request from inside the flash applications. Fallacy: This does not work because as soon as the browser is closed the flash player unloads the app and hence the communication breaks.Option #2: On "onbeforeunload" event send a http request using XMLHTTPRequest in ajax. This works fine in IE but doesnt work in Firefox. When i debugged the http req in httpfox it threw "NS_BINDING_ABORTED" error which i think means that request was cancelled due to page unload.
I have a Javascript API, which should be usable with GWT and Flex. Using the FABridge it is really easy to call Javascript methods from AS3 and vice versa. But when I try to register a callback to an AS3 method in my Javascript API I get stuck. Here is a short code sample:
I am pretty new to flex, so forgive me if this is an obvious question.Is there a way to open the Security.showSettings (flash.system.Security) with a callback? or at least to detect if it is currently open or not? My flex application is used for streaming audio, and is normally controlled by javascript, so I keep it hidden for normal use (via absolute positioning it off the page).
When I need microphone access I need to make the flash settings dialog visible, which works fine, I move it into view and open the dialog. When the user closes it, I need to move it back off the screen so they don't see an empty flex app sitting there after they change their settings.
I'm making a callback from javascript to a method on my swf. It works in Firefox with no problems, but in chrome the second parameter that's passed is always received as null? I've debugged my javascript and found that everything is working fine and the two values that are passed to the swf are correct at the point where the callback to the swf is made. At first i thought this might be a cross domain issue, but have ruled that out as if it were the case then the method on swf would just not be called at all. The second value is a binary string representation of an image and the length of the string that is passed is 101601, so i'm wondering whether there's possibly a limitation on the amount of data that can be passed? The first parameter is a much smaller string representing the file type and this always gets received successfully.
I'm trying to call a function in my ActionScript from my JavaScript, I've managed to successfully do this with another flash file but in the current one it's failing for some reason. I'm using jQuery SWFEmbed, this is my JS code:[code]The ExternalInterface.call work, and the trace outputs true, I have no idea what's going on.If you could also tell me how I can pass parameters to a ExternalInterface callback.
public function callFromJavaScript():String { test.label='dfdsfsdf'; return "1"; } public function init():void {
[Code]...
I have no clue wich one are crossbrowser compatible (cant install IE to test out)I have tried multiple but i cant get them to work(in any browser), im probably using the wrong id, ive been trial & erroring for a couple of hours but i don't have anything working.(i heard there was a problem with ExternalInterface.addCallback on a local file system?, should i upload the swf? < is the flex code right& problem = javascript/html side?)
I'm trying to get javascript to talk to flash, but I haven't been able to get it to work.I've gotten flash to talk to javascript, but not the other way around. It seems as thought flash isn't listening to the javascript, or I'm doing something wrongPart of the AS3 to initially call the js:
I have a page that uses the jQuery.swfobject plugin to embed 5 flash items into a page and each flash item has a callback using externalInterface. The callbacks work when I have the js function outside of $(document).ready(function() but the jQuery animations do not fire - the ajax load however does. Does anyone know how to get the animations working too, code below:
function pageLoader(galID) { $('#menu').hide(); $('#holder_gallery').load("feeds.php", {gallery: galID}, function(){
I have a flash application using callbacks to javascript functions (eg. when it receives some data over a socket, it'll call a js script which would change the content of a div according to that given data).
Afaik, there is no actual mutual exclusion in javascript so I'm not sure if I can/need to simulate something like :
[code]...
So, the question is, when are those callbacks called ? Are they simply queued to be executed right after the browser finishes its task or are they triggered randomly ?
My web application pass a javascript object to flex application using addCallback function. when the flex application is in modal dialog in safari browser, the object in the flex application is null and when I open the flex application just in a new window, the object is passed correctly. But, I need the showmodaldialog to show the flex application.
The flex code: ExternalInterface.addCallback( "handleEvent", handleEvent ); override public function handleEvent( event:Object ):Object { Alert.show(String(event)); .....
I'm currently working with soundmanager2 in an IE/flash context (not html5). The issue is that audio playback of mp3 content does not occur for the following case where the 'onload' callback function is defined as null OR as a function that does almost nothing.
I have a flex app and I am adding a callback method like this:
private function init():void { ExternalInterface.addCallback( "playVideo", playVideo ); }
[code].....
However if I uncomment and run the alert first. I get no error and it works perfectly.My first thought was that the alert was buying time until the script could execute, so i tried to run the script inside a setTimeout() but did not work.
I have got this script working from How to get mouseup to fire once mousemove complete working within the jQuery (document) scope.Later on I added a flash object inside the body.and when I click on the flash object the mousedown event fired, mousemove event fired, but not the mouseup event which where I want to unbind the mousemove. But when I click on non Flash area, mousedown works, mousemove works, and mouseup also works. It works like I wanted it to in Chrome, but not in Firefox.Here are the codes, and I called handleMouseDown in $(document).ready
handleMouseDown: function () { jQuery(document).mouseup(function() { Log("unbind.");
I know there have been other questions on getting JavaScript / Flex ExternalInterface to play nicely, but I've what I think is a weird one. It works perfectly in every browser except Safari (on a Mac). Chrome, IE, Firefox - all ok, but Safari, nope it just wont fire.I've copied my code below, can anyone see why it doesn't work in Safari pls ?(the 'are you sure' dialog window appears in Safari but the method in the Flex app just doesn't get called)
I then populate the page with some Flash controls (in my case, I'm using Uploadify). When I click on the Flash control, I see the alert in Firefox 4. However, I do not see the alert in IE8 or Chrome (I havent tested any other browsers).
$('#trailer-dialog').mediaelementplayer({ enablePluginDebug: false, // remove or reorder to change plugin priority plugins: ['flash','silverlight'], // specify to force MediaElement to use a particular video or audio type
I am integrating a flash module with Drupal using XMLRPC module. I am currently calling a node.save on Drupal(which creates a page in drupal), using Actionscript 2.0. On a flash button click, I am currently calling the node.save function. But ideally, I would like the function to be called first and only after the success of node.save, forward to the confirmation url. Right now, I am being forwarded to the page even without node.save being completed. I then have to refresh the page in order to see the results.
I am trying to write an IF Else statement that will check to see if a movieclip on the stage has an external SWF loaded in it that was loaded using the loadMovie command. Does the loadMovie command or the internal movieclip object have any kind of a built in function that will return a value if it has an external SWF loaded in it?
i made an example so i can explein the prob better.[code]I am making a class and if have another build in object in it. I what to add a callback to it but the inheritance is not right. I know how the set up inheritance
1) subClass.prototype.__proto__ = superClass.prototype; 2) subClass.prototype. = new superClass;
but its all messed up in my head so I was hoping someone could point me in the right direction on how to get the callback to work with out messing up the LoadVars class too much
What I get is that you can pass a function to another function as an argument so that the function that you pass to can "call back" that particular function.
All good. However, I'm unclear about a couple things: Why exactly is this beneficial? is this the same thing that the addListenerEvent method does when you pass it a function as an argument for when the event fires?