0

私はこの Flash プロジェクトに取り組んでおり、すべてのアセットがフレーム 5 にエクスポートされ、最初のフレームにプリローダーが含まれる swf を構築しました。プリローダーが終了すると、実際のサイトが始まるフレーム 10 にジャンプします。これはうまくいきます。

ただし、これまでにテストしたすべてのブラウザー (FF、IE、Chrome、および Safari) で、URL に # を配置すると、ブラウザーが最初に swf 全体をダウンロードし、最後に再生を開始するように見えます。その結果、swf の読み込みに時間がかかり (空白の画面)、プリローダーが 100% で起動し、swf がサイトに移動し続けます。

誰かがこの動作と、この問題に光を当てるための入力を確認できれば幸いです。

アップデート:

この迷惑な Flash Player の動作を指摘してくれたrhtxに感謝します。ある意味でこれがなぜなのかは理解できますが、私はそうではありませんが、リニア ムービーを作成する場合にのみ機能します。現在、最初のフレームのすべてのディープ リンクの場所にラベルを作成する必要があることを意味します。これは、パスがコンテンツ ドリブンである場合はもちろん不可能です。

この2番目の問題を克服する方法はありますか?

4

4 に答える 4

2

URL に # が含まれていると、ローカルの SharedObjects の書き込みと読み取りでかなりクレイジーな問題が発生しました。それは苦痛で、完全に突き止めることはできませんでした。あなたが扱っているものと同じではありませんが、URL に「#」がある場合、FP の動作が異なる場合があることを確認できます。

あなたの場合、「#」記号が原因で、Flash Player がアンカーを探している可能性があると思います。私の推測では、SWF 全体が読み込まれるまで検索を続け、一致するアンカーが SWF のどこにもないことがわかります。

次のようなことを試してみてください:

メイン タイムラインの FLA に新しいレイヤーを追加します。最初のフレームで、アンカーを作成します (キーフレームを追加し、フレームに名前を付け、名前を付けるときに [アンカー] オプションを選択します)。ページをもう一度読み込んでみてください。ただし、ハッシュ記号の後にアンカーの名前を入力してください。希望どおりにロードされる場合、私の推測には何かがあるかもしれません。

それが役立つことを願っています。

于 2009-07-15T15:17:07.530 に答える
1

私の推測では、このバグが問題を引き起こしていると思います。この男はしばらくの間、このバグの性質について報告してきました。

フレックスを使用していないように聞こえますが、このバグが純粋なas3フラッシュにも影響する場合でも驚かないでしょう。

バグは最近クローズされました。解決策:メインのswf(asperous.usなど)をロードするための小さなswfプリローダーを作成します。

これも参照してください。q&a

于 2009-07-20T01:57:20.750 に答える
1

このバグについては以前から知っていたので、コンテナ メソッドを使用して回避しています。しかし、私はコンテナー方式が嫌いなので、散発的に解決策を Web で検索しています。

救助へのRhtx..

本来あるべきほどきれいではありませんが、動作には非常に満足しています..

私が今それを実装した方法は、フレーム 1 に「loading」という名前のフレーム ラベル タイプのアンカーがあることです (フレーム 2 はアプリケーションが存在する場所です)。

次に、javascript を使用してフラッシュ サイトを読み込みます。これは基本的に次のことを行います。

//pseudo javascript
var path = "";
function buildFlash() {
   path = location.hash.length > 1 ? location.hash.substr(1) : "";
   location.hash = "loading";
   $(document).ready(onDOMReady); //could probably directly load the swf now
}

function onDOMReady() {
   swfobject.embedSWF(... with path flashvar ...);
}

これが機能する理由は、フラッシュから関数ExternalInterface("setPath", path)を呼び出してハッシュを設定し、パスを googleanalytics に渡すためです。

URL http://www.site.com/#about/にアクセス すると、サイトの読み込み中に /#loading という URL が表示されます。読み込みが完了すると、Flash アプリケーションがユーザーの移動先を判断し、それに応じて URL を変更します。 .

于 2010-02-04T16:24:56.397 に答える
1

実際の SWF をロードするだけの「コンテナ」SWF を作成できます。そうすれば、ページの swf が実行前に完全にロードされても問題ありません。これは、サイズが数 kb しかないためです。

于 2009-07-14T05:36:02.440 に答える