我需要获得swf“电子学习”电影的一些信息。我需要知道用户已经停止观看和/或用户是否已观看直到结束。我不是在开发LMS,所以我只需要简单的功能。有没有办法从使用JavaScript的闪存中检索此信息?如果是这样,你知道在哪里可以找到一些关于它的文件吗?
提前致谢。
答案 0 :(得分:1)
您可以使用Adobe Flash的ExternalInterface
API在Javascript和ActionScript之间进行通信。 浏览器支持: IE 5.0 +,Firefox 1.0 +,Safari 1.3 +,Opera,Chrome(版本N / A但足够老)。 < / p>
在 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文件的object标记中,设置以下参数:
<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.");
}