我試圖在使用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