私はHTMLの初心者なので、助けていただければ幸いです。
HTML JS と埋め込まれた SWF の間で通信したいと考えています。動作する Flash から html の JS 関数を呼び出すことができます。しかし、JS から Flash にコールバックできません。
コードを最小限に抑えましたが、まだ成功していません。AS3のコードは次のとおりです。
package
{
import flash.events.Event;
import flash.events.MouseEvent;
import flash.display.Sprite;
import flash.external.ExternalInterface;
public class CFacebook extends Sprite
{
public function CFacebook()
{
init();
}
private function init():void
{
ExternalInterface.addCallback("myFlashcall",myFlashcall);
btn1.addEventListener(MouseEvent.CLICK, onClick1);
btn2.addEventListener(MouseEvent.CLICK, onClick2);
}
public function myFlashcall(str:String):void
{
txtDebug.text = "myFlashcall = " + str;
}
protected function onClick1(event:MouseEvent):void
{
ExternalInterface.call("myFBcall1");
}
protected function onClick2(event:MouseEvent):void
{
ExternalInterface.call("myFBcall2");
}
}
}
これはすべて機能します - 呼び出されないコールバックを除いて。ここに私のHTMLがあります:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Simple Flash Embed</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script type="text/javascript" >
function myFBcall1()
{
alert("test1");
}
function myFBcall2()
{
document.getElementById("SwfFacebook").myFlashcall("IT WORKS");
alert("test2");
}
</script>
</head>
<body>
<object type="application/x-shockwave-flash"
data="SwfFacebook.swf"
width="640" height="480">
<param name="movie" value="SwfFacebook.swf" />
<param name="allowScriptAccess" value="always"/>
<param name="allowFullScreen" value="true"/>
<p>Alternative content -- Can contain any HTML: DIVs, IMGs, etc.</p>
</object>
</body>
</html>
最初のボタンをクリックすると、最初の ALERT が表示されます。2 番目の ALERT が表示されず、SWF のコールバック関数が呼び出されません。
感謝を込めて