ExternalInterface.addCallback
API'sini kullanarak bir eylem komut dosyasındaki bir işlevi çağırmaya çalışıyorum, ancak çalışmasını sağlayamıyorum. İşte ne var:Javascript aracılığıyla bir ActionScript işlevine erişme
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!";
}
}
}
NOT: Ben bu konularda esnek mxmlc derleyici kullanarak bir swf içine bu derleme.
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>
alıyorum hatadır:
Uncaught TypeError: Object #<HTMLObjectElement> has no method 'getStringJS'
Ben de swf dosya yükleme değildi durumda zaman aşımı ekleyerek çalıştı ama Bu yöntemle herhangi bir başarı elde edemedi.
Herhangi bir düşünce?
Alkış,
Mike
Güzel örnek. Yine de 2017'de çalışıyor. Diğerleri için başka bazı ek bilgiler de burada bulunabilir: http://help.adobe.com/en_US/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7cb1.html – Aleks