Actionscript :: Can't Get ExternalInterface In Flash To Work
May 14, 2009
I'm using the XSPF music player (the slim version found here [URL], written in AS2) to play through a list of mp3s on a website. I need to make a javascript call each time it loads a track. I'm attempting to do this through ExternalInterface, but so far with no luck. Here's my setup: I'm writing the site on a linux machine which also houses the testing server, but editing the flash in windows. I'm testing the site on the same linux box with firefox 3.0.10. The html and actionscript are posted here[URL]). Does anyone see anything wrong with my code? why it's not working? I feel like it's something in my basic setup...
I have a SWF file emedded withing a HTML page. Trying to do a simple operation - go to and play certain frame in SWF using javascript. I'm using ExternalInterface to do this but for the life of me can't get the two to communicate. I add all the code but when clicking on the link which calls javascript, it says my flash object is undefined?
I just had this conversation with a colleague and I am now turning to the SO community to provide evidence based on fact, not opinion, as to which tool would be ideal to grow into in the current programming environment. Director or Flash?I am deciding if I should stick with Flash or bother learning Director 11.5. He want to know if he should stick with Director or learn Flash. No, we don't work together. Hehe..
EDIT:
I've gotten ExternalInterface to work with VB.NET, hence the need for Director in the context of its ability to do File System IO and "non-flv" video are eliminated. No if only VB could do the kinds of animation that Flash could do, I could turn towards being a "real" programmer...
This code works perfectly with Chrome, Firefox and Opera but won't do it in IE. And... I also would need to have it working on IE6 = PS: the alert works fine in all the browsers (except IE6,7,8 because of the .src attribute =_=)! So I think the problem isn't the object retriving.
I'm having some serious issues trying to get externalinterface to work in ie. I've looked around and seen that there are problems with ie when the swf is inside a form tag but my swf is not. Also I have set "allowscriptaccess" to "always" and still nothing. It works fine in FF and safari. In ie all i get is a little icon in the bottom corner that says "Error on page" and when I select that it just says something to the effect that there is a syntax error but doesn't give any helpful details at all.
I'm trying to call a method inside a flash movie from js, every time the mouse leaves the "div". It works on Internet Explorer, but not in firefox. Here is the html script:
Here is example of the problem, there is an alert for the js and the flash should be able to remove the swf (see a gray background? it works! see a image, flash didn't receive the call): [URL]. This should work with internet explorer / safari / chrome (pc/mac) only firefox seams to reject this.
I have this which is based off of this question: [URL]. However this neither works in firefox and IE. If I embed my flash into the browser like this: <embed src="helpdeskApp_three.swf" id="flash" quality="high" scale="exactfit" width="800" height="500" name="movie" align="middle" allowscriptaccess="always" type="application/x-shockwave-flash" pluginspage="[URL]"/>
This works in Firefox but not IE. What is the proper way of embedding my flash movie so it works across all browsers?
I'm trying to create a flash file (using no GUI) that uses the ExternalInterface class. But it just plain dies as soon as I call ExternalInterface.call().
I'm using SWF Tool's as3compile program to export this, and even with the -v flag up, it gives no warnings or errors. Here's the whole file:
this works in FF and outputs 600 like expected and it doesn't work in IE, instead it outputs 0??? why is this handled differently in different browsers?
I am having an issues with ExternalInterface.call to return a value in IE. It is working fine in Firefox. Eventhough I changed the "allowscript access" to "always", still it is not working. Is there any thing that I need to change in Flex or the HTML to make this work? or this is a security setting in IE?
I am trying to use the ExternalInterface.call function in my ActionScript(2.0) to get a javascript var value set in the wrapping document. The following seems to work in FireFox and in Chrome but, naturally, it does not work in IE(8). getting the value stored at this variable?
var linkPath = ExternalInterface.call("function(){return window.customLinkLocation;}", null);
The problem is this: I have an swf embedded in an html. I must call a js function in the page from the swf via ExternalInteface. Ok. But it must work locally, for any user, without doing nothing. That's because this thing must be distributed in cdroms.
I'm looking to call a flash method from a method in javascript and recieve a result:Example:Flash -
ExternalInterface.addCallback("getProgress", getProgress) // Javascript to flash public function getProgress():void { ExternalInterface.call("getProgress", progress); // Send progress back to javascript from
Is there a way to get a list of the exposed functions from a Flash object? For example, you could get a list of all methods in an object by executing[code]...
The only issue is that this won't expose any methods registered through the ExternalInterfaces API. I can try and see if the function exists (object['method']) and it tells me it is a function, but I would have to guess every existing method in this manner..
I'm communicating from a flash application using a command like the following: ExternalInterface.call("hello", "world") This is handled on the C# end by something like:
[Code]...
The axFlash_FlashCal is called fine, as long as there is a textbox on screen that's set to use TLF text. (any textbox will do, no specific ID). Without the textbox the even will not fire. (Even though ExternalInterface.Avaliable is set to true) I've tried using CS4 and CS5 to publish, using both Flash 10 and 9 as output.
I'm trying to call a function declared with ExternalInterface in a Flash swf, using JavaScript.It worked once, but all of a sudden, it stopped working.I have a debug version of the Flash Player, but no errors occur in Flash.Not even a "Security Sandbox Error" or something. The only error I get is the following error in JavaScript Error: Error in Actionscript. Use a try/catch block to find error.I'm using AS3, exporting for Flash Player 10 and testing on Firefox 3/Safari 4, on a Mac.
i'm currently trying to call a javascript function and pass values to it. but i'm not really familiar in using the addcallback since i only tested on calling a function from flash without passing anything to the function.
Basically, i'm going to retrieve the values of a node from xml. and then i will assign those values to a variable in flash. now what i'm going to do next is pass this value to a javascript parameter..is it done using externalinterface?
I just need to throw the value to the javascript function parameter and no return values to the actionscript. The event is that whenever an image is click, the corresponding value for each image is passed to the javascript function.
Im trying to use JS to send data to my Flash AS2.0 music player with ExternalInterface, except there are no good tutorials or guides on ExternalInterface that I can find. I want to be able to change the current song in the player by clicking a JavaScript link, and on page / window load without clicking, play a default song.
I dont need a super complicated answer on loading sounds in flash, etc., I am just having a lot of difficulties getting JS to send anything to Flash, and when I get that to work - would I need to put some if / else into the flash to determine if the link has been clicked or not?
Flash has the ExternalInterface class which can communicate to JavaScript running in the browser Can you use the ExternalInterface.available property to check if JavaScript is enabled?
I have a custom container (C#) for the Flash ActiveX control and am passing data back and forth. Previously I would use ExternalInterface.call and pass an Array as a parameter. I would prefer to use the Vector class now that it is available, but it appears that when I do that the call is never made.
It is however made if it is embedded in IE. It appears that when in IE, Flash will send out JavaScript to execute rather than serializing to XML. My guess is that the Vector XML serialization isn't baked in, so Flash just ignores the call.
Other than just going back to using Array, I've already done that for now.
I have avoided adobe products like the plague from when I was developing myself since it costs a fortune to buy and of their products, but big employers love it and pay for it so here I am. Our "Flash" guy just left the team and I inherited this issue. If you read my other post you know what is going on so I will move on. I want to make a simple call from actionscript to my javascript taht is referenced in my other post. I specifically want to call the CheckboxCollection function from inside of actionscript. I don't need to pass it any args or anything of the such from inside of actionscript.
All I need it to do is run that function once the flash is done loading. The javascript function will take care of everything I need, I just HAVE TO HAVE IT called from actionscript to make everything work in harmony. I am in the middle of teaching myself all things adobe and actionscript(much to my dismay), but I really have no clue where top go from here to make this work. I have reviewed adobe documentation, but until I have a better grasp of the language as a whole I am still lost. I copied most of my actionscript on to here, but I did leave out everything that had to deal with mouseover events, since my issue is not about a mouseover and they all work like a charm.
UPDATE: I had to stop working on this to get some other things done, but I am back to step one. NO matter what I do I am having no luck making this work. I have tried all suggestions on here, and tried everything I KNOW how to do, but I am having no luck. If anyone could take a look at this post and the one that I link to (It is the companion javascript for this) and see if they can come up with anything. I have tried so many different iterations of my code there is no use putting all of my trials up for example of what doesn't work,
/* JavaScript External Calls */ function RegisterExternalCalls():void { if(ExternalInterface.available)
We have a Flash app (AS3).This is a desktop application that runs in our own projector.No Air.The projector is written in C++.The projector gives Flash part an indirect access to Windows API via ExternalInterface.Now we want to let our community to create plugins.Just to let them make a small animated picture with a bit of Action Script 3.A plugin is going to be loaded as external .swf file at runtime.And, of course, we would like our users to distribute the plugins on the net.But, we have a security concern.What if some bad person would take advantage of the indirect access to Win API?I have made a small test.A child .swf loaded into the program tries to call ExternalInterface methods.It turned out the child.swf was able to do this.So every .swf file loaded into our program will automatically has an access to Win API.Downloading plugins for our program becomes as dangerous as an .exe file.Can we forbid ExternalInterface access to the loaded .swf?If not - how would you implement plugin system in AS3 with security in mind
[URL] BUT it got moved to components (I do understand why) , however, someone in another forum said to look at ExternalInterface to fix the problem above which seems to now be more appropriate to this forum.
I just dont understand how this >>> ExternalInterface / getURL to send scroll events to/from flash, would fix this>>> [URL].