AS3 :: Flash - Remove External Interface Callback During Loading?
Oct 12, 2011
I have a series of 10 external interface callbacks that are called through javascript and load mp3 files. The problem is, someone is able to click these while my pre-load function is running and it causes multiple files to load. Is there a way to disable the callbacks while the pre-load function is running?
ExternalInterface.addCallback("receiveText1", receiveText1);
function receiveText1(value:String):void {
channel.stop();
channel2.stop();
I have been at it for two days now and have not been able to resolve this issue. I am trying to call an AS3 function from JavaScript via ExternalInterface API which is simply not working at all. If I to call a JavaScript function form html loaded swf, it works beautifully.[code]
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 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 ?
public class Test extends MovieClip implements ITest { public function Test() {
[Code]....
So if I have test.swf in the same directory(local way) it work's fine. But if I'm placing it on the dedicated server: (event.target.content as ITest) returns null. However, I can access speak() without interface like this event.target.content.speak("a!");
Having a problem trying to get the external interface working with as3. My flash file has 2 input text boxes with instances of 'received_ti' and 'sending_ti' and a button with instance of 'send_button'. My html code has a simple form with 'sendField' and 'receivedField' inputs and a submit with a value of 'Send'.
At the moment i can get the flash file to send text into the html 'receivedField' input but cannot send text from html into the flash file's 'received_ti' text box.
What I have:A swf exports a function via ExternalInterfaceJavascript creates new embed object and adds it to the documentCalling flash functions works fine in other browsersCalling flash functions will fail in IE 8Example of exporting functions in swf:
flash.external.ExternalInterface.addCallback("isActive", ... Example of creating the embed object: var b = document.createElement('embed');
Everytime I try to do even an ExternalInterface.call('alert','abc'); (Which will work on every browser) I get an object doesn't support this property or method After the alert appears. It even happens in the HTML generated by flash without me touching it...
I have a flash player with an external javascript interface: reloadData() I'm calling that function via Javascript when editing information on the page - basically to keep data on the page and in the player in synch. The reloadData() function works fine when the player is hosted locally. When we move it to the CDN (Amazon Cloudfront), the player loads successfully, but the external javascript interface no longer works - console.log(player) reveals the following:
<object type=,"application/x-shockwave-flash" data="[our_cloudfront_url].swf" width="920" height="404" id="player" style="visibility:visible;"> Uncaught TypeError: Object #<an HTMLObjectElement> has no method 'reloadData'
I know there are a lot of things that behave differently when working with items on a CDN, but we're using a CNAME to point to the cloudfront distribution (buildid.ourdomain.net => distributionid.cloudfront.net)
We have a flash game embedded in a web page (using SWFObject v2.2) and there are some links on the page that call into the flash in the following manner:
window.document["flashObjectId"].flashMethod();
This has worked great on all browsers we have tried including IE7 and 8, however on IE9 it generates the following error: "SCRIPT438: Object doesn't support this property or method".
It does work in compatibility mode so I tried adding a meta tag to tell IE9 to use compatibility mode by default, however that didn't work because our game runs in an IFrame within Facebook.
I have tried referencing the flash object every way I could think of in the Javascript but I always get that same error message in IE9.
I will call flashObject.httpRequest to complete a http request via flash. The problem is there is no reference about httpRequest is an async method or sync. It is important for my application.
private function httpRequest (uri:String, param:String="", method:String="GET"):void { var
Normal Externalinterface methods do not work if i wrap my swf(html) in AIRpackage.Javascript to flash vice versa.Anyone have a workaround to make it work?
Is there a non-polling way for Javascript to command Flash right when its external interface is ready? In Actionscript, I've registered a function for Javascript to call:[code]SWFObject lets you run code when Flash has been successfully embedded through a callback. I attempt to run $ ('flash Player'). doStuff in this callback, but it claims it's undefined. It seems that Flash needs some time to boot up its external interface. So I've been using a polling hack to find out when the external interface is ready:[code]There's a visually perceptible delay in the execution of doStuff and it makes my overall code structure muddy.
Working on a site that uses external interface to control the appearence of a number of buttons, setting color and text. The whole deal works fine in Firefox and IE (after vigorous debuggging), but I can't seem to address the objects correctly in safari. The swfs are hard coded in and I'm using a function to find the reference to the object and then using an EI addcallback to set the values.Here some javascript for the main functions:
Code: function getMovieName(movieName) { if (window[movieName]) {
I am looking for a simple and straightfoward example of how I can pass the value of a variable into flash using javascript.Specifically, I'd like to use javascript to pass the filename of an external video file that I would like to load into my flash movie.I'd also like to call a function in the SWF that plays the movie once the filename as been passed to the flash movie.External Inferface looks like the way to goI've found a few decent AS2.0 examples, but converting them to AS3.0 has proven difficult and many of the examples are much too complex for what I am trying to do.
I am in the process of creating a chess board where you can move the pieces. Currently i am working on the rook and the coding is below. I know it is not elegant and probably the most inefficient code out there, but this is day 2 of my actionscript 3.0 life and i am kinda a beginner. Anyway, so the thing is, when you click the piece the code below figures out the possible ways to go. Then green squares appear at those places. You can then press those green squares and then the rook will move there.
Ok, now to the problem. The squares will not go away. I want them all to be deleted when i have clicked on one of them and the rook will move there.
I am using in AS3 "External Interface ". When I call the JS function that is on the same page as swf everything works fine.
I added a link in the html page to an external JS file, when I move the JS function to the external JS file the website crushes.
I would prefer to have all my JS functions on an external file so I can use them in the future in other project and it also makes it easier for me to update the site.
how to call a JS function that is on an external file from AS3?
My client has approx 12 different presentation .swf's all with a beginning, middle and an end (phew!). I need to build an interface that views those 12 individual presentations as thumbnails on a single page and allows my client to click and drag whichever ones they wish to use into a separate little container above and in-doing so create a new required running order (left to right) each time they use my interface... so that once they have decided that running order they can somehow use the result for their required presentation. They will be using this interface ongoing throughout the year for various presentations all that will require maybe just a few of those individual swf's in different orders.
Im testing a program in FlashDevelop, which uses Flash player 10. Need externalInterface to work, but on running this simple test program, it displays "ExternalInterface is not available". How do I get ExternalInterface working? [URL]
<mx:Script> <![CDATA[ import mx.controls.Alert; private function init():void { if (ExternalInterface.available) { [Code] .....
By the way, this script shows "External Interface is available" when I run it in my browser. Its only when I run it in Flash Player 10, that it is not available.
I've got a SWF with buttons that are calling a javascript function using External Interface - specifically the Milkbox photo gallery. For various reasons, the page with the embedded SWF has to work online as well as being run from someones local machine. The online version runs fine on every OS/browser. However, I've run into a snag where, for some reason, the local version isn't firing the javascript on Win XP in any browser.Is there perhaps some snag with using External Interface locally on an XP machine, or is there something else at play here? FYI, no problems at all on Vista/any browser.
I'm having a problem with Flash and Internet Explorer. I'm trying to close out a browser window with
//as code ExternalInterface.call("closeWindow");[URL].. Of course this works in all other browsers except IE, the error that I am getting is:'null' is null or not an object
I have created a peelback advert that peels down from the top right. All is well apart from it it obstructs the user ability of the site underneath as the peelback advert is effectively over the top. I have been giving some guidlines to stop this but i am struggling to understand them. The instructions specificall say that the file must be set with the transparent parameter.
Here are the options that i have:
OPTION 1: import flash.external.ExternalInterface; // Function executed in answer to the event function onClic(pEvt:Event):void {
[code]...
I think it could be the latter two that i need but am not entirely sure, i have tried them but have failed in my attempts?!If this is definetly the way to do it i will persevere! If these are not the way, what does the corner_show/hide method method do?
I have a navigation menu set up using standard jquery to load new body text and play a swf. There are about 10 links, each having there own body text and swf file. The swf's simply play, then stop after about 30 frames. When clicking through each menu item, a new swf plays and body text appears. I've been running into a problem lately with IE not reloading a swf. Instead it stops on the last frame of the swf and appears as an image. I was told to try using the external interface so jquery can force it to reload. I've never used the external interface before though, how to do this?
Several months ago for a project at work i developed a video player using flash, external interface and swfobject.js. I used external interface to facilitate communication between javascript and actionscript. This works great. Currently I am working on an extension to this that requires me to extrapolate logic from what i already written. I am using the same swf file in both applications, but in the extension i can't get the flash object to recognize my calls. Since i am using the same swf object i know that my problem is in the javascript, i just don't know where. I am using the JQuery Library. Without further adieu here's my code.
i am trying to communicate from javascript to AS3 by using External Interfaces, now the problem is that the function i am trying to call works fine with Internet Explorer 8, but it doesn't works with firefox 3.5.9 or google chrome, below is the html / javascript code.
HTML Code: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
Using Flash - AS 3.0: I am trying to use ExternalInterface.call to open a .pdf file - but it is not working - nothing is happening...
ExternalInterface.call ("window.open","diagrams/v1/crh.pdf", "WindowName", params); But this line DOES work - call an .html file to open. ExternalInterface.call ("window.open","m5_quiz/v1/quiz.html", "WindowName", params);
I can't find any information that says this should or shouldn't work - it seems to me it should open it. To get around this - I have been using 'navigateToURL' to open the pdf file - but that triggers the pop-up blocker - using the External Interface call does not.
We're using External Interface for interfacing between Flash and JavaScript on the HTML page. All works fine online. When we try to localize the pages though (so that a Salesperson can have a CD full of demos), none of them seem to work.Is this an over-sensitive Flash security issue? We already have allowscriptaccess='always' and swliveconnect=true in the object/embed tags.
What can we do that doesn't require changes on each individual machine to set trust paths or any other kind of browser configuration? Not only do we want to have this content working on the machine of a salesperson, we may get clients that want to deploy content offline (kiosks, machines without any network access).