0

swf「eラーニング」ムービーの情報を入手する必要があります。ユーザーが視聴を停止した部分、またはユーザーが最後まで視聴したかどうかを知る必要があります。私は LMS を開発していないので、単純な機能だけが必要です。javascript を使用してフラッシュ内からこの情報を取得する方法はありますか? もしそうなら、それに関するドキュメントがどこにあるか知っていますか?

前もって感謝します。

4

1 に答える 1

1

Adobe Flash のExternalInterfaceAPI を使用して、Javascript と ActionScript の間で通信できます。ブラウザのサポート: IE 5.0 以降、Firefox 1.0 以降、Safari 1.3 以降、Opera、Chrome (バージョンは N/A ですが、十分に古いものです)。

Flash TO Javascript 通信;

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>

Javascript TO Flash 通信;

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.");
}
于 2013-02-18T23:14:14.850 に答える