0

Further to my previous post ...and thanks so much for the responses .... This is the real situation I'm trying to resolve. Just need to call a swf from javascript to move the swf on to another time frame.

AS3

Import flash.external.ExternalInterface;

function moveOn (frame:int ) : void
{
gotoAndPlay (frame);
}
ExternalInterface.addCallback("myjsFunction", moveOn);

JS

<script language="JavaScript">
function  sendtoSwf (frame){
MyMovie.myjsFunction(frame);
}
</script>
...
<object id="MyMovie"...>
...
<param name="allowScriptAccess" value="always" />
....
<embed name="MyMovie".../>
</object>

HTML JS trigger

<a href onclick=”javascript : sendtoSwf(25);”> click here </a>

If someone could please clarify, since I only want to trigger swf from js, do I maybe not need the ...addCallback(...) line ? Should it actually be just a ...Call(...)? I havent quite grassped the Internal Interface idea yet. In my html click trigger Im trying to pass an integer value which is the actual frame I want the swf to move to, I'm not sure if the trigger should link to the "sendtoSwf" function or the "myjsFunction" ...do I not need a reference in js to the actual name of the as3 function that moves the frame?(i.e. moveOn) Any clarifacation would be GREATLY appreciated. Thanks in anticipation. Ed

2 Answers 2

1

For anyone interested this is what worked:

<script type="text/javascript">
//checking which browser used
function getFlashMovieObject(movieName){
if (window.document[movieName]){
    return window.document[movieName];
}
if (navigator.appName.indexOf("Microsoft Internet")==-1){
    if (document.embeds && document.embeds[movieName])
        return document.embeds[movieName];
}
else{
    return document.getElementById(movieName);
}
}
//code that sends frame no to flash
function sendtoSwf(numb){
var flashMovie=getFlashMovieObject("myFlashMovie");
flashMovie.sendToFlash(numb);
}
</script>

And the action script

import flash.external.ExternalInterface;
ExternalInterface.addCallback("sendtoFlash", getFromJavaScript);
function getFromJavaScript(frame:int):void {
gotoAndPlay(frame);
}
Sign up to request clarification or add additional context in comments.

Comments

0

You definitely need the addCallback function , but you also need to check that Javascript is ready to communicate with Actionscript. Have a look at the docs, the example is fairly detailed and should give you the information you need.

check the External Interface class http://www.adobe.com/livedocs/flash/9.0/ActionScriptLangRefV3/

1 Comment

Thanks Patrick I managed to get it working. Added some code to check for browser type and re-worked the code.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.