我试图在使用ExternalInterface.addCallback
API的动作脚本中调用一个函数,但我似乎无法让它工作。下面是我有:通过Javascript访问ActionScript函数
的ActionScript:
//MyClass.as
package {
import flash.display.Sprite;
import flash.external.ExternalInterface;
public class MyClass extends Sprite
{
public function MyClass()
{
ExternalInterface.addCallback('getStringJS', getStringAS);
}
public function getStringAS():String
{
return "Hello World!";
}
}
}
注:我使用的是柔性mxmlc编译如果该事项编译为swf这一点。
HTML/JavaScript的:
<!doctype html>
<html>
<head>
<title>User Identification</title>
<head>
<body>
<object id="MyClass" name="MyClass" type="application/x-shockwave-flash" data="MyClass.swf" width="1" height="1">
<param name="movie" value="MyClass.swf">
<embed src="MyClass.swf" width="1" height="1">
</object>
<script type="text/javascript">
var flash = document.getElementById("MyClass");
var str = flash.getStringJS();
alert(str);
</script>
</body>
</html>
我得到的错误是:
Uncaught TypeError: Object #<HTMLObjectElement> has no method 'getStringJS'
我也尝试添加在情况下SWF文件是不加载超时,但我这种方法也没有任何成功。
有什么想法?
干杯,
迈克
不错的例子。作品仍在2017年。对于其他人,还可以在此处找到其他一些其他信息:http://help.adobe.com/en_US/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7cb1.html – Aleks 2017-02-09 13:40:57