いつかは手を出すことになるだろうなぁと思っていたのですが、今月から仕事で手をつけています。 ActionScript 3.0 には Matrix3D クラスがなかったので自作するハメになりました(それほどの手間ではありませんでしたが)。
ActionScript 3.0 にはラスターイメージを自由変形する機能がありませんので、 Graphics クラスと行列を組み合わせてラスタライザっぽい機能を自作します(こういうやつです)。しかしながら、自作したラスタライザ(っぽい機能)で普通にアニメーションさせようとすると、チラつきやポリゴン割れ(みたいな現象)に悩まされます。そういう場合はタイムラインに載せて Event.ENTER_FRAME のタイミングで描画します。 Event.ENTER_FRAME の中は垂直同期みたいな空間ですので綺麗にアニメーションが作れます。
面倒な人は 3D のライブラリを使うか Flex SDK を使いましょう。お金があれば CS4 を購入するのも楽です。ただ、 Flex SDK や CS4 の 3D 機能を使った場合は Flash Player 10 での動作になります。
Contributions