如何从 JavaScript 调用 Flash ActionScript 回调方法?
我尝试从 JavaScript 调用 flash 回调方法。 但它似乎不起作用。 flash动作脚本示例代码如下[简化]:
import flash.events.ActivityEvent;
import flash.events.StatusEvent;
import flash.external.ExternalInterface;
var test_var = ExternalInterface.addCallback("js_method_to_call", flash_method);
function flash_method()
{
return "test";
}
javascript示例代码编写如下[简化]:
function callFlashMethod(){
var flashFile = eval("window.document.test");
flashFile.js_method_to_call;
}
function loadTest(){
swfobject.embedSWF("test.swf", "test", "1", "1", "10.0.0", false);
}
$(document).ready(function(){
loadTest();
callFlashMethod();
});
在fire bug控制台中总是显示错误“flashFile.js_method_to_call不是函数”。
I tried to call a flash callback method from JavaScript.
But it seems not working.
The flash action script example code is like below [Simplified]:
import flash.events.ActivityEvent;
import flash.events.StatusEvent;
import flash.external.ExternalInterface;
var test_var = ExternalInterface.addCallback("js_method_to_call", flash_method);
function flash_method()
{
return "test";
}
The javascript example code is written below [Simplified]:
function callFlashMethod(){
var flashFile = eval("window.document.test");
flashFile.js_method_to_call;
}
function loadTest(){
swfobject.embedSWF("test.swf", "test", "1", "1", "10.0.0", false);
}
$(document).ready(function(){
loadTest();
callFlashMethod();
});
It is always display the error in fire bug console "flashFile.js_method_to_call is not a function".
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
下面的内容应该非常有效:
使用 SWFObject.js 嵌入 Flash 内容:
将此用于 HTML:
<前><代码><正文>
要调用 Flash 方法,请使用此模式:
调用 Flash 方法:
Here's something that should work really good:
Use SWFObject.js for embedding the Flash content:
Use this for the HTML:
To call your Flash method use this pattern:
Call the Flash method:
您将获得对嵌入式 SWF 对象的引用,并使用它来调用 as3 方法。
You get a reference to your embedded SWF object and use it to make a call to your as3 method.
这里有一个有趣且非常详细的教程
http://bytes .com/topic/flash/answers/694359-how-do-i-access-flash-function-using-javascript#post2759970
There is an interesting and quite detailed tutorial here
http://bytes.com/topic/flash/answers/694359-how-do-i-access-flash-function-using-javascript#post2759970
http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/external/ExternalInterface.html?filter_flash=cs5&filter_flashplayer=10.2&filter_air=2.6
本页很好地描述了该解决方案,只需尝试使该示例正常工作即可。这样你就可以解决这个问题了,弗拉基米尔·茨维特科夫的回答就完整了。
http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/external/ExternalInterface.html?filter_flash=cs5&filter_flashplayer=10.2&filter_air=2.6
This page describe the solution very well, just try to make that sample work. So you can sort out the problem, and Vladimir Tsvetkov's answer is complete.
我不确定这一行:
我会使用:
另外,我猜这只是粘贴到此处时的拼写错误,但是
flashFile.js_method_to_call;
应该是flashFile.js_method_to_call() ;
I'm not sure about this line:
I would use:
Also, I'm guessing this was just a typo when pasting here, but
flashFile.js_method_to_call;
should beflashFile.js_method_to_call();