swf「eラーニング」ムービーの情報を入手する必要があります。ユーザーが視聴を停止した部分、またはユーザーが最後まで視聴したかどうかを知る必要があります。私は LMS を開発していないので、単純な機能だけが必要です。javascript を使用してフラッシュ内からこの情報を取得する方法はありますか? もしそうなら、それに関するドキュメントがどこにあるか知っていますか?
前もって感謝します。
swf「eラーニング」ムービーの情報を入手する必要があります。ユーザーが視聴を停止した部分、またはユーザーが最後まで視聴したかどうかを知る必要があります。私は LMS を開発していないので、単純な機能だけが必要です。javascript を使用してフラッシュ内からこの情報を取得する方法はありますか? もしそうなら、それに関するドキュメントがどこにあるか知っていますか?
前もって感謝します。
Adobe Flash のExternalInterface
API を使用して、Javascript と ActionScript の間で通信できます。ブラウザのサポート: IE 5.0 以降、Firefox 1.0 以降、Safari 1.3 以降、Opera、Chrome (バージョンは N/A ですが、十分に古いものです)。
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.");
}