如何在Flash& amp;使用Javascript

时间:2009-11-04 10:12:28

标签: javascript flash actionscript-3 externalinterface

我需要使用Javascript在Flash中调用函数。为此,我使用的是ExternalInterface类(在http://help.adobe.com/ru_RU/AS3LCR/Flash_10.0/flash/external/ExternalInterface.html末尾描述的示例)。但它对我不起作用。

SWF在HTML页面中声明如下:

 <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="305" height="270" id="DemoPlayer" align="middle">
 <param name="allowScriptAccess" value="always" />
 <param name="allowFullScreen" value="false" />
 <param name="movie" value="DemoPlayer.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" /> <embed src="DemoPlayer.swf" quality="high" bgcolor="#ffffff" width="305" height="270" name="DemoPlayer" align="middle" allowScriptAccess="always" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
 </object>

我尝试使用Javascript调用Flash中的函数:

function thisMovie(movieName) {
         if (navigator.appName.indexOf("Microsoft") != -1) {
             return window[movieName];
         } else {
             return document[movieName];
         }
     }  
     function sendToActionScript(value) {
         thisMovie("DemoPlayer").sendToActionScript(value);
     }

在Flash中我有:

ExternalInterface.addCallback("sendToActionScript", receivedFromJavaScript);

在FireFox中,我收到以下消息:“在NPObject上调用方法时出错![插件异常:在Actionscript中出错。使用try / catch块查找错误。]。”

我已经将param allowScriptAccess的值更改为“always”,但它没有帮助。 也许这是ExternalInterface.addCallback(“sendToActionScript”,receivedFromJavaScript)的位置问题;它位于“Adobe Flash”* .fla文件的“Action-Frame”选项卡中。 (我是闪光灯的新手。)

1 个答案:

答案 0 :(得分:3)

我发现了问题 - 这是Flash Player settings。首先,我只将我的swf文件添加为受信任,但是当我添加整个目录时,它开始工作。