最近、人気番組「ゴーストウィスパラー」のインタラクティブミュージックビデオを作成するという、かなり大変な作業を引き受けました。私はプロジェクトの後半に連れてこられ、巨大なオーサリングファイル(約5000フレーム以上の長さ)に直面しました。以前のプログラマー(AS2ですべてを行った)は、基本的にタイムメインタイムラインに2分半のFLVを埋め込み、特定のフレームポイントで、他のクリップを再生するようにそれらのクリップをトリガーする基本的なマウスクリック機能との対話性のためにクリップを追加しましたいくつかのフラッシュ要素といくつかのビデオ要素で。
(私が作成した最終バージョンはここhttp://www.gwghostmagic.comで見ることができます);
きちんとしたフリークなので、AS3ですべてを再構築し、タイムラインを完全に破棄し、実行時に要素をロードして、5000フレームの代わりに1つのフレームを作成し、アクションをトリガーしてEvent.ENTER_FRAMEイベントリスナーを追加することにしました。ロードされた.swfが特定のフレームに到達したときに対話性をトリガーします。プログラマーの観点からは、特定のアクションを操作するためにすべてがはるかに明確で簡単になりました。問題は、物事ががらくたのように実行されたということでした。
5000+フレームバージョンは、私のAS3バージョンよりも高速にロードされ、スムーズに実行されました。イベントリスナーから実行するよりも、タイムラインを埋め込んで実行する方が良いのはいつですか?フラッシュはタイムライン機能に適していますか?
当初、ストリーミング.flvをビルドして実行することにしましたが、.flvが23.975 fpsで実行されていたのに対し、フラッシュムービーは24 fpsで実行されていたため、アクションを.flvに同期することはできませんでした。残念ながら、flvを埋め込んだ.swfをコンパイルする必要がありました。次に、その.swfがメインの.swfに読み込まれ、読み込まれた.swfのフレーム位置に従って再生されるすべての関数と追加のクリップが含まれていました。
私が気づいたことの1つは、Event.ENTER_FRAMEは、フレームごとに200行のコード長のifステートメントのリストを実行する必要があるため、アプリケーション全体の速度を低下させるように見えることです。ここで、すべてが埋め込まれている場合は、インタラクティブクリップがインスタンス化されるキーフレームを挿入するだけで、if elseステートメントを循環するのではなく、すぐに何をすべきかがわかります。
私は物事を素敵で整頓しようとして失敗しましたか?フラッシュをフラッシュにしたほうがいいですか?私は別のキャリアを探すべきですか?どんな入力でも大歓迎です。