私の書いた MTASC のソースを読み解いてくださっているのを発見(id:sshi:20050918)。
(ここで文体が変わり)
恥ずかしいんですが、じゃんじゃんやってください>id:sshi さん
で。
折角なので思ったことをいくつか書いておきます:
new の左辺
私も、var t をなくしてみて、parse error が出て、悲しくなりました。
var t への代入がなくても動作すべきだと思います。
宣言時の初期化
インスタンス変数の初期化を宣言時に行うのは便利ですが、この初期化は一度しか実行されないので注意が必要です。
例えば
class Foo { var m:Number = Math.random(); function Foo( mc:MovieClip, depth:Number ) { // 略 } static function main() { var t0 = new Foo( _root, 1 ); var t1 = new Foo( _root, 2 ); } }
とすると、t0.m と t1.m の値は同じになります。
Etude5 の例では、インスタンスが一つしかできないので宣言時に初期化すればいいとも言えます。
インスタンスが複数になることを考慮して書いているつもりなら、mL の初期化を宣言時にするべきではありません。
this.man
制作過程の経緯で this.man となってます。いわゆる歴史的経緯という奴です。sshi さんのように書くのが正しいと思います。
man は、勝手に追加してます。勝手に追加しやすすぎるのが ActionScript の難点だと思っています。
色の計算
やたらややこしくてすいません。
高い彩度の色を色相順に出すという計算です。
式を見るとわかる通り、t の値を元に、r,g,b を計算しているわけですが、対応表を書くと
t | 0 | (2/3)π | (4/3)π | 2π |
---|---|---|---|---|
r | 0 | 0 | 127 | 0 |
g | 0 | 127 | 0 | 0 |
b | 127 | 0 | 0 | 127 |
となります。
0→127, 127→0 と変化する部分は、cos を使ってなめらかに変わるようにしています。
定石とか
私もそれほど経験がないので、私の書いたものが定石だと思うとひどい目に遭うかもしれません。
例えば、私は生きているムービークリップを自分で管理してますが、
for( i in _root ){ /*略*/ }
で、_root に属するムービークリップを列挙することができるみたいです。
#やったことないので「みたい」以上のことは言えませんが。
それと。
どんな class に、どんなメソッドとプロパティがあるのかは、MTASC の std ディレクトリ以下に揃っていますので、それを見れば一目瞭然。
私は、std ディレクトリ以下にある *.as ファイルをつなげて一つのファイルにしたものをエディタで開いておき、インクリメンタルサーチしてメソッドを調べたりしてます。お勧めです。
ついでに。
音を出すなら Sound クラスです。loadSound で外部 mp3 が読めるようです。が、やったことないのでよく知りません。
なにはともあれ。
ソースを公開したことが役に立っているようで本当に嬉しく思っています。はい。