現在表示されているウィンドウを超えて垂直方向に何倍も伸びる一連の行に約100個のフラッシュグラフ(およびその他のDOMのもの)をレンダリングする必要があるアプリケーションがあります。つまり、ユーザーは下にスクロールしてすべてを表示する必要があります。さまざまなグラフ。
このアプリケーションも動的であり、ユーザーがDOM(ページ上の任意の場所)の値を変更すると、その変更をすべてのFlashグラフに同時に伝播する必要があります。
そこで、すべてのexternalInterfaceコールバックを設定し、非常に重要な「flashIsReady」呼び出しまでJSが開始されないように注意しました。そして、既存のswfを新しいデータでupdate()しようとするまで、うまく機能しました。
動作は次のとおりです。-IE/Foxの両方で(最初は)すべてのswfsがロードされる=良好。-新しいコンテンツでswfsを更新することはIEでは機能しますがFoxでは機能しません=良くありません-新しいコンテンツでswfsを更新することはFoxで機能します--のみ-ページの一番下までスクロールしてから一番上に戻ります--BEFORE- -update()をトリガーしました。
そこで、JSと呼ばれるswfが「フラッシュの準備ができました」と言うたびにトレースを開始しました。Firfoxはswfが表示されるときにのみレンダリングすることに気付きました。そして正直に言うと、それは問題ありません。実際、IEもこれを実行していると確信しています。しかし、問題は、Firefoxがswfを初期化しないだけでなく、まだ表示されていない場合、Firefoxはswfが存在することを認識しないことです(オンロード後を想定)。
そしてその証拠は、次のようなJSエラーが発生することです。
「[FlashDOMID].FlashMethodは関数ではありません」。
ただし、少し下にスクロールして、表示されるまで待ち、突然トレースが点灯し始めます
「フラッシュレディ」、「フラッシュレディ」、「フラッシュレディ」、そしてそれらがすべて準備ができたら、すべてが正常に動作します。
FFは表示されるまでswfを初期化しないと誰かが私に言いました-私はそれを強制できますか?必要に応じてコードを投稿できます...しかし、かなり重い(残りの部分から関連するものを取り除くのは難しい)ので、可能であれば(あなたのために)それを避けたいと思います。
質問は簡単です-あなたはこれが起こったことがありますか?もしそうなら、あなたは解決策を見つけましたか?まだ見えていないswfを強制的に初期化する方法はありますか?みんなありがとう。