2011-01-27 6 views
1

私は髪を引き出しています。私はこの非常に奇妙なバグを持っています:バグはブラウザでは見えますが、Flash CS5では表示されません

私はSpriteを拡張するカスタム "StagedSprite"クラスを持っています。その目的は、ステージのサイズが変更されるたびにステージの境界線に自動的に位置を合わせることです。

今、私はPNGファイル "ybmp"(ビットマップ)を読み込み、 "loadingIcon"(StagedSprite)に子として追加します。 Flash CS5では、PNGが画面上に正しく表示されます(あまりにも揃っています)。しかし、FirefoxやIEからSWFを公開して実行すると、PNGが表示されません。でもMORE奇妙である何

は、次のコードを生成するものである:

//var ybmp:Bitmap = the loaded bitmap 
//loadingIcon is a StagedSprite 
loadingIcon.addChild(ybmp); 
trace(ybmp.bitmapData.width,ybmp.bitmapData.height); 
trace(ybmp.width,ybmp.height); 
trace(loadingIcon.width,loadingIcon.height,loadingIcon.getChildAt(0),loadingIcon.stage); 

私は、画面上のテキストフィールドに「トレース」の結果を置きます。 CS5では、上記のコードが生成:FirefoxとIEで

215 200 
215 200 
215 200 [object Bitmap] [object Stage] 

を、上記のコードは生成:

215 200 
215 200 
0 0 [object Bitmap] [object Stage] 

それは地球上では何ですか?!?ブラウザでは、 "loadingIcon"ではBitmap ISが追加されていますが、 "loadingIcon"では幅と高さがゼロに設定されています。 ?!?!?

ここでもStagedSpriteコードを貼り付けることができますが、少し大きめでscrollRectプロパティはありません。結局のところ、Flashオーサリングツールで実行される理由は何でしょうか?ブラウザではありません。

事前に多くの多くのおかげで、

ビル

EDIT: ああ、私は良いです。それでも信じられないほどの理由で、loadingIconはscaleXとscaleYを0に設定していましたが、ブラウザのバージョンでのみです。私のコードでは、scaleXまたはscaleYには何も設定していませんが、デフォルトでは1に設定する必要があります。

ブラウザで私の「loadingIcon」が0の位取りを持ち、CS5にはないという意見はありますか?どちらの場合もまったく同じコードです。これを1000回クロスチェックしました...

答えて

1

[OK]を、私はそれを見つけて誰かが将来的に助けられた場合にそれを送信します。

ブラウザでは、起動時にStage.RESIZEイベントが発生しました。オーサリングツールで解雇されていませんでした。非常に早い段階で起こっていたので、 "loadingIcon"は高さがゼロになり(gfxがロードされなかったため)、scaleYがゼロになります。

ブラウザにはというメモがありますが、通常はCS5にはないいくつかのイベントが起動する可能性があります。

関連する問題