0

フラッシュオブジェクトのリストを含むdivがあります。リストが長いので、divの高さを400に設定し、オーバーフローをautoに設定しました。

これはFFでは正常に機能しますが、IE6では表示されている最初の5つのフラッシュオブジェクトのみが機能します。下にスクロールすると、最初は表示可能領域の外側にある残りのフラッシュオブジェクトは空になります。「ムービーがロードされていません」が取得されないため、swfsは正常にロードされます。それらはまた正しく埋め込まれているように見えます、すなわちそれらはただ空です。コンテンツが描画されることはありません。

これを修正する方法について何かアイデアはありますか?

ps。関連するhtml要素は、これに影響を与える場合に備えて、主にフローティングです。フラッシュオブジェクトは、人気のあるswfObjectを使用して埋め込まれます。

編集:バグはフラッシュプラグイン「WIN8,0,24,0」でのみ発生するようです

リンクを投稿できないので、ここに関連するコードを要約します。

<div style="overflow:auto; height:400px; float:left;">
<div id="item_1" style="float:left; clear:left; height:100px;">
<!-- swfObject Embed here -->
</div>
...
<div id="item_7" style="float:left; clear:left; height:100px;">
<!-- swfObject Embed here -->
</div>
</div>

編集:別のページでこの問題を再現しようとした後、バグはフラッシュオブジェクトが最初に非表示になっていることに何らかの関係があることがわかりました。ページが読み込まれると、コンテナdivに「display:none;visibility:hidden」が表示されます。その後、スタイルはjavascriptを介して表示に変更されます。最初からすべてが表示されるようにページをロードすると、すべて問題ありません。

4

4 に答える 4

0

これは単なる回避策ですが、最初にFlashオブジェクト(対応する高さと幅のdivなど)のプレースホルダーを作成し、最初に表示されたときにのみ(swfobjectなどを介して)ムービーをロードすることができます。これにより、いくつかの問題が発生する可能性があります(つまり、ムービーが表示される前にプリロードされない)が、許容できる場合があります。

于 2008-11-05T12:04:06.860 に答える
0

これには解決策があると思います。問題のページが再構成されたので (このバグのため)、私には絶対に確信が持てません。後で、別のページにある同じフラッシュ コンポーネントに関する同様の問題に出くわしました。

フラッシュが Stage.height=0 および Stage.width=0 になることがあるという問題がありました。これは、ブラウザのビューポートの外でフラッシュが開始されたときに発生する可能性が最も高くなります。ステージの寸法を使用してコンテンツをスケーリングします (この場合は幅 = 0 および高さ = 0)。

解決策は、ステージ ディメンションをチェックし、それらが > 0 の場合にのみ続行する onEnterFrame ハンドラを追加することでした。

于 2009-01-20T14:15:24.790 に答える
0

IE6 でこの種のものをテストしているとき、最初に行うことは、スタイル情報の削除を開始することです。親 DIV と子 DIV の両方からすべてのフロートとクリアを削除することから始めます。それがうまくいかない場合は、すべてのパディングとマージンを削除し、親 DIV と子 DIV の幅をそれぞれ 100% にします (高さは 100px のままにします)。それでもうまくいかない場合は、ここに投稿してください。あえて推測しなければならない場合、それはあなたのDIVに幅がないためだと思いますが、それは私が知っている「いないいないばあバグ」に基づくワイルドな推測です。

于 2008-10-21T14:51:01.113 に答える
0

私が試してみたいいくつかのこと:

  • すべての CSS を一時的に削除して、問題が CSS 固有のものかどうかを判断します
  • 浮動要素とその親要素にピクセル幅を追加します
  • wmode transparent パラメータを swfobject に追加します
  • 追加位置:相対

Flash のバグについて聞いたことがありますが、このバグは、Flash が画面の外にある部分をロードした場合にのみ発生するようです (つまり、body > #flash {margin-top:-50px})。あなたの問題は、潜在的にそのバリエーションである可能性があります。

または、オーバーフローを含む div を完全に削除し、スクロールバーを使用してフラッシュでコンテナーを作成し、個々の SWF をその 1 つのコンテナー フラッシュ ファイルにロードすることもできます。

于 2008-10-21T22:13:58.567 に答える