Flashで、複数のインスタンスを左右にスクロールさせて、ステージの左端まできた時に(インスタンスのx座標 < -インスタンスの横幅)インスタンスを右端に移動、ステージの右端まできた時に(インスタンスのx座標 > stage.stageWidth)インスタンスを左端に移動するようにActionScriptを書いたのだが、IEで確認したところ動かしているインスタンスが点滅する。
これははまった…
調べまくったら、何とか納得できる答えがでてきた。
どうやらIEでは、2回目以降のswf読込時には、つまりキャッシュがある状態ではstage.stageWidthやstage.stageHeight の値が 0 になるらしい。
上記の条件だと、(インスタンスのx座標 > stage.stageWidth)が(インスタンスのx座標 > 0)になる訳で、インスタンスがステージに表示されてる場合は常に左の最後部に飛ばされてたってことだ。
こりゃ点滅するわ!!!
stage.stageWidthや、stage.stageHeightなどを取得しているところを、直接値を指定してあげたら改善した。
SWFObjectなどを使えばこんな問題は発生しないのだろうか…
こんど検証してみよう。
これははまった…
調べまくったら、何とか納得できる答えがでてきた。
どうやらIEでは、2回目以降のswf読込時には、つまりキャッシュがある状態ではstage.stageWidthやstage.stageHeight の値が 0 になるらしい。
上記の条件だと、(インスタンスのx座標 > stage.stageWidth)が(インスタンスのx座標 > 0)になる訳で、インスタンスがステージに表示されてる場合は常に左の最後部に飛ばされてたってことだ。
こりゃ点滅するわ!!!
stage.stageWidthや、stage.stageHeightなどを取得しているところを、直接値を指定してあげたら改善した。
SWFObjectなどを使えばこんな問題は発生しないのだろうか…
こんど検証してみよう。

コメントする