Flash Player のバージョンにより Matrix3D.transformVector で Vector3D の値が 1/20 になるバグ?
Flash Player 10 から利用できる 3D関連処理の勉強をするためにネットとヘルプを見ながら格闘している最中です。それらしいものはできたのですが、期待する結果と異るものができている感じがする。なぜか3D変形を行ったオブジェクトが豆粒のような小ささになってしまうのです。
何がいけないのかと原因を調べてみると、Matrix3D.transformVector の処理でおかしくなってしまっているらしい。
var m:Matrix3D = new Matrix3D(); var v:Vector3D = new Vector3D(500, 1000, 0); var c:Vector3D = m.transformVector(v); trace(c); 出力結果 c: Vector3D(25, 50, 0)
特に何も変形を行っていないのですが、Matrix3D.transformVector を実行することにより Vector3D の各値が 1/20 の値になってしまっている。この 1/20 はいったいどこからきたのだ、と調べてみたところ Flash Player バージョンによっては上記バグが発生するらしき記述が英語のサイトにありました。
各ブラウザのバージョンの異なる Flash Player で試してみたところ以下のような結果に。
IE : Flash Player バージョン 10,0,2,54
cの値 → Vector3D(25, 50, 0)
Opera : Flash Player バージョン 10.0.12.36
cの値 → Vector3D(500, 1000, 0)
残る問題は Flash CS4 自体の Flash Player のバージョンをアップグレードするにはどうしたらよいのだ、という点だ。 →続き
[ FLASH ] [ info ] [ tips ] 投稿者 siratama : 2008年12月25日 19:11