2011-02-05 12 views
1

私はFlashで動作しないので、何も知りませんが、Webページにswfファイルを埋め込む作業があります。私は短いフィルムを演じる以外に、swfの内部デザインについて何も知らない。 swfがいつ再生を開始するかを制御したい場合は、巻き戻し(無限に再生されます)、場合によってはブラウザでキャッシュすることもできます。これは、JavaScriptの電源を入れた画像の一部になります。<img>要素はswfのために一時的に<object>に置き換えられます。すべてのFlash swfファイルにJavascriptとのインタフェースのための組み込みメソッドがありますか?

私の質問は、コンパイル時にswfファイルにJavascriptの組み込みインターフェースがあることです(私は思っていますか?)、あるいはこれは完全にそのようなコードを含むことにしたのでしょうか?著者のコードの追加に応じての場合、実行可能なテストはありますか?

答えて

1

興味深い質問です。残念ながら、これには簡単な答えはありません.Flashで何かを行うには何百万もの方法があります。オリジナルの開発者が何をしたかによって、試してみることができるさまざまなものがあります。

Flash PlayerはネイティブAPIでExternalInterfaceメソッドを提供しているため、すべてのFlashアプリケーションでjavascriptを呼び出すことができます。開発者が設定した場合、javascriptコマンドに応答するために内部コールバックメソッドをフラッシュに登録することもできます。そのため、両方の方法で動作させることができます。

これは、開発者があなたがそれを望んでいたために具体的に入れていない限り、彼はそれをしたとは思わなかったし、とにかく見ることもできないだろう。

swfの構築方法によっては、いくつかのオプションがあります。まずは埋め込みコードにLOOP = TRUEパラメータを追加してみてください(詳細はhere)。これが基本タイムラインアニメーションである場合、またはビデオクリップのフレームがタイムラインにダンプされ、Flash独自のアニメーションツールを使用して再生している場合、これが必要な場合もあります。

これでうまくいかない場合、状況は少し複雑になります。 .swfを任意の数のフラッシュデコンパイラの1つを使用して逆コンパイルしようとする可能性があります。これは、そこにあるメソッド、構造化されたものなどについてのいくつかの洞察を与えるかもしれません。それはまったく良い科学ではありません。試行錯誤。

swfをイントロスペクションする過程で、たとえば "Video"というオブジェクトが "Video"というオブジェクトを持っていることがわかっている場合は、ラッパーの.swfを書き込んでターゲットswfにロードし、 JavaScriptとのインターフェイス。あなたが探しているのがループなのであれば、ビデオオブジェクトにはオートリピートプロパティなどがあるかもしれません。

これは少し長かったですが、私はそれが助けてくれることを願っています。ご不明な点がございましたら、コメントをお寄せください。

+0

応答ありがとう - 非常に有益です。 JavascriptではFlashを呼び出すことはできますが、これは開発者が設定し、SWFが汎用APIを共有していない場合のみであることを理解しています。正しい? – tjbp

+1

ExternalInterfaceコールバックは、JavaScript側ではなく、フラッシュ側で設定する必要があります。 [まあ、彼らは両方の側で設定する必要があります - ジャンクスクリプトだけでそれを行う方法はありません。] – Myk

+0

もう一度ありがとう。 :) – tjbp

関連する問題