我是 HTML 新手,所以我非常感谢一些帮助。
我想在我的 HTML JS 和我的嵌入式 SWF 之间进行通信。我可以在我的 html 中从 Flash 调用我的 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。第二个 ALERT 永远不会显示,我的 SWF 中的回调函数也永远不会被调用。
感谢