我需要获取有关瑞士法郎“电子学习”电影的一些信息。我需要知道用户停止观看的部分,或者用户是否已经观看到结束。我不是在开发 LMS,所以我只需要简单的功能。有没有办法用javascript从flash中检索这些信息?如果是这样,您知道我在哪里可以找到有关它的一些文档吗?
提前致谢。
我需要获取有关瑞士法郎“电子学习”电影的一些信息。我需要知道用户停止观看的部分,或者用户是否已经观看到结束。我不是在开发 LMS,所以我只需要简单的功能。有没有办法用javascript从flash中检索这些信息?如果是这样,您知道我在哪里可以找到有关它的一些文档吗?
提前致谢。
您可以使用 Adobe Flash 的ExternalInterface
API 在 Javascript 和 ActionScript 之间进行通信。浏览器支持: IE 5.0+、Firefox 1.0+、Safari 1.3+、Opera、Chrome(版本不适用,但足够老了)。
在您的AS3/Flash 中:
function sendToJS(obj:Object):void {
if (ExternalInterface.available) {
ExternalInterface.call("onFlashCall", obj);
}
}
在您的HTML/Javascript中:
<head>
<script type="text/javascript">
function onFlashCall(obj) {
console.log("Data received from Flash: ", obj);
}
</script>
</head>
在您的AS3/Flash 中:
public function onJavascriptCall(obj:Object):String
{
console.log("Data received from Javascript: ", obj);
}
ExternalInterface.addCallback("sendToFlash", onJavascriptCall);
在您的HTML/Javascript中:
<head>
<script type="text/javascript">
function sendToFlash(obj) {
var flashElem = document.getElementById("flashObject");
flashElem.sendToFlash(obj);
}
</script>
</head>
<body>
<!-- Embeded Flash SWF -->
<object id="flashObject"...>
...
<embed name="flashObject".../>
</object>
</body>
重要提示:在 Flash 中,不要出现安全错误:
在包含 HTML 页面的 SWF 文件的对象标记中,设置以下参数:
<param name="allowScriptAccess" value="always" />
在 SWF 文件中,添加以下 ActionScript:
flash.system.Security.allowDomain(sourceDomain);
sendToJS()
在播放器的相应事件处理程序中调用方法:
protected function onStopClick(event:MouseEvent):void
{
sendToJS("User has clicked the STOP button.");
}
protected function onPlaybackFinish(event:Event):void
{
sendToJS("Playback is complete.");
}