ActionScript3の仕様ちょっとなーと思う今日この頃。
最近、ActionScript3でずっと開発を続けてきたけれど、
その苦労話について。
これまではJava専門だったので、ActionScript3に関してあまり詳しくなかったので知らなかったけれど、やっていくうちになんだろこれーって思うようになった。
たとえば、EventListenerをaddしたら必ず、removeしなければ
いけないとか。GCが実装されているにもかかわらず、これは行わなければ
行けない仕様。
もちろんremoveしなければ、メモリリーク。
EventListenerの参照レベルをweakにすることで、GCの対象にすることが
できるけれど、使われているにもかかわらずGC対象になることがあるから
使えない。
イベント系の処理がうまく動いてくれないケースがたまにあり、
プログラム間違ってないはずなんだけどなーと思っていたけれど、
この参照レベルの問題だった。
これって問題じゃないんだろうか。
上記のEvent系は、Event管理クラス作って、あとでまとめて開放できる
ロジックにしたからとりあえず問題はなくなったけれど、
Appleのスティーブジョブズの言うこともちょっと理解できる。
あとoverloadができなかったり、クラスのフィールドと、メソッドが同じ名前使えなかったりするのも、不便に感じる。
これはECMAScriptの仕様だからしょうがないといえば、そうなんだけれど。
ま、でも全体的にほかの言語よりも、ゲームが作りやすい構造になっていることは確か。
ゲーム開発に関してはAndroidではOpenGLとか使うし、
ある程度の開発力が必要だから少なくともまだAndroidよりは作りやすいなって感じた。