ActionScript3の仕様ちょっとなーと思う今日この頃。

最近、ActionScript3でずっと開発を続けてきたけれど、
その苦労話について。


これまではJava専門だったので、ActionScript3に関してあまり詳しくなかったので知らなかったけれど、やっていくうちになんだろこれーって思うようになった。


たとえば、EventListenerをaddしたら必ず、removeしなければ
いけないとか。GCが実装されているにもかかわらず、これは行わなければ
行けない仕様。
もちろんremoveしなければ、メモリリーク


EventListenerの参照レベルをweakにすることで、GCの対象にすることが
できるけれど、使われているにもかかわらずGC対象になることがあるから
使えない。


イベント系の処理がうまく動いてくれないケースがたまにあり、
プログラム間違ってないはずなんだけどなーと思っていたけれど、
この参照レベルの問題だった。


これって問題じゃないんだろうか。


上記のEvent系は、Event管理クラス作って、あとでまとめて開放できる
ロジックにしたからとりあえず問題はなくなったけれど、
Appleのスティージョブズの言うこともちょっと理解できる。


あとoverloadができなかったり、クラスのフィールドと、メソッドが同じ名前使えなかったりするのも、不便に感じる。
これはECMAScriptの仕様だからしょうがないといえば、そうなんだけれど。


ま、でも全体的にほかの言語よりも、ゲームが作りやすい構造になっていることは確か。


ゲーム開発に関してはAndroidではOpenGLとか使うし、
ある程度の開発力が必要だから少なくともまだAndroidよりは作りやすいなって感じた。