ちとはまったのでメモ。
swfの最小表示領域を確保したい場合にSWFForceSizeを使用するのですが、それがIEで上手く動作しなくてフガフガしてた。現象としては
・設定ウインドウサイズになってもスクロールバーが表示されない
・最初に小さいウインドウで表示させた後に、ウインドウを拡大してもFlashサイズが変わらない。
・縦サイズのみスクロールバーが表示され、横方向は表示されない。
等、上手く動作するときもあれば、上記のようなバラバラの挙動を示していた。
SWFObject2.0でSWFForceSizeを使う | FlashやWebにまつわるいろいろなことが原因かな?とも思ったのだけど、ちと違う。そもそもSWFForceSize.onResizeDivが発動していない。
Progression.jsの中を確認してみると”/contents/objects/version.swf”を用いてバージョンチェックを行って、progression.onLoadを実行。その中でswfObject,SWFForceSizeを定義するってのがデフォルトの流れ。
SWFForceSize内部では定義時に
this.addWindowEvent( 'onload', this, this.onLoadDiv );
をセットして初期化を行うようにしている。
んがprogression.onLoadの発動タイミングによって、document.onload後にSWFForceSizeが定義される可能性があり、そこが多分不具合の原因なのではないだろうか?と思う。(違ったらごめん)
単純に考えて”prog.onLoad”の一番最後にdocument.onLoad()を強制的にCALLしてやれば上手く動くかな?と思ったのだけど、横方向のスクロール制御が不能になったりしたので断念。
外部JSの読み込みのタイミング等に依存しているのか上手く動いたり動かなかったりという不安定な挙動をしめすので一度Progression.jsをはずした形で実装を進めてみることにする。
落ち着いたらも少し調べてみる。