javascriptコードを使用してFlashPlayer内でファイルの再生を開始することは可能ですか?もしそうなら、私はそれをどのように行いますか?
6 に答える
swfObjectを使用してみてください。アクションスクリプト関数を使用ExternalInterface
して JavaScript に宣言することで、JavaScript に対して任意の actionscript 関数を表示できます。play()
したがって、JavaScriptコードから(または必要な他のコードで)actionscript関数をトリガーできます。
以下に例を示します。
アクションスクリプト:
import flash.external.ExternalInterface;
ExternalInterface.addCallback( "methodName", this, method );
function method() {
trace("called from javascript");
}
Javascript:
function callAS() {
swf.methodName();
}
methodName は、js が actionscript からメソッドを呼び出すために使用する識別子です。
SWFObjectを見てください。それを達成する方法についてはたくさんの例があります。
はい、そうです。js から Flash ムービー オブジェクトを参照し、ページ内の Flash コンポーネントを制御できます。残念ながら、この方法はブラウザ間で移植できません。これを参照してください:
ここで興味深い方法が提案されています: http://www.permadi.com/tutorial/flashjscommand/
私のために働く!
アイデアは、をembed
使用してオブジェクトを取得することです
function getFlashMovieObject(movieName)
{
if (window.document[movieName])
{
return window.document[movieName];
}
if (navigator.appName.indexOf("Microsoft Internet")==-1)
{
if (document.embeds && document.embeds[movieName])
return document.embeds[movieName];
}
else // if (navigator.appName.indexOf("Microsoft Internet")!=-1)
{
return document.getElementById(movieName);
}
}
Play()
後でそのメソッドを呼び出します。
getFlashMovieObject('MyMovie').Play()
他のいくつかの方法がサポートされています。上記のリンクを参照してください。
Javascript から実行する必要がある場合は、次のように自動再生パラメーターをオンにすることを検討してください。
オブジェクト/埋め込みの親を取得したと仮定します ( vidParent ):
if( document.all) {
// toggle the object code (IE)
vidParent.innerHTML = vidParent.innerHTML.replace(/0\" name=\"autoplay/gi,'1\" name=\"autoplay');
} else {
// toggle the embed code
vidParent.innerHTML = vidParent.innerHTML.replace(/autoplay=0/gi,'autoplay=1');
}
これにより、autoplay = 1 でフラッシュがリロードされます (この例は YouTube プレーヤーで動作します)。
ビデオの再生を追跡するために、これを行う必要がありました。
JavaScriptからFlashのカスタム関数を呼び出すことができます。これには、JavascriptとFlashの両方をコーディングする必要があります。
いくつかの例については、ここを参照してください: http: //kb.adobe.com/selfservice/viewContent.do?externalId=tn_15683。
また、SwfObjectを使用すると、JavaScriptからFlashを処理するときに非常に役立ちます。