2009-03-20 5 views

答えて

6

swfObjectをお試しください。ExternalInterfaceを使用してjavascriptで宣言すると、javascriptでactionscript関数を表示できます。だから、play()(またはあなたが望む他のコード)でjavascriptコードからactionscript関数を起動することができます。ここ

は一例であり:

のActionScript:

import flash.external.ExternalInterface; 

ExternalInterface.addCallback("methodName", this, method); 
function method() { 
    trace("called from javascript"); 
} 

のJavascript:

function callAS() { 
    swf.methodName(); 
} 

methodNameに識別子JSは、ActionScriptからメソッドを呼び出すために使用されます。

2

はいです。 jsからフラッシュムービーオブジェクトを参照し、ページ内のフラッシュコンポーネントを制御することができます。残念ながら、あなたがそれを行う方法は、ブラウザ間で移植可能ではありません。 SWFObjectを見てみましょう

http://www.permadi.com/tutorial/flashjscommand/

+0

http://www.adobe.com/support/flash/publishexport/scriptingwithflash/ –

3

:これを参照してください。それを達成するための多くの例があります。

1

Flashでカスタム関数をJavaScriptから呼び出すことができます.JavaScriptとFlashの両方をコーディングする必要があります。

いくつかの例は、http://kb.adobe.com/selfservice/viewContent.do?externalId=tn_15683を参照してください。

また、SwfObjectを使用すると、JavaScriptからFlashを処理する際に役立ちます。

+0

これは、フラッシュ部分が私によって書かれていない場合、私はそれを再生できないということですか?私はページにJSコードを追加できますが、フラッシュはできません。 – Geo

+0

いいえ、ExternalInterfaceを使用せずにjavascriptからコンパイルされたFlashムービーを制御することはできません。 – totocaster

+0

@Geo:正確に。 Flashムービーを再生するには、コードと動作を完全に制御する必要があります。サードパーティの映画なら、それをコントロールすることはできません(逆コンパイルしてコードを追加しない限り、それはあなたが私から聞いたことのないものです:P)。 – Seb

2

あなたがそうのような自動再生パラメータにフリップを検討し、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プレーヤーで動作します)。

私はビデオの再生でいくつかの追跡を行うためにこれをしなければなりませんでした。

2

興味深い方法がここに提案される:http://www.permadi.com/tutorial/flashjscommand/

作品を私のために!

アイデアは

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); 
    } 
} 

を使用してembedオブジェクトを取得し、その後そのPlay()メソッドを呼び出すことです。

getFlashMovieObject('MyMovie').Play() 

上記のリンクを参照してください。

関連する問題