こんにちは。スロースターター安藤です。

年明け最初のエントリーなので肩の力を抜いて小ネタでございます。

var s:Sprite = new Sprite();
s.hoge();
//エラー:未定義である可能性のあるメソッド hoge を.....

Spriteにはhogeなんてメソッドは無いのでコンパイルエラーで通らないのですが、↓のような場合はどうでしょう。

var s:Sprite = new HogeClass();
//HogeClassはSpriteを継承したクラスで、hoge();メソッドが定義されている。
s.hoge();
//しかし同様にエラー。

Spriteとしてオブジェクト化されたHogeClassオブジェクト。しかしhogeメソッドは未定義とされ呼べません。

コードの都合でどうしてもSpriteとして宣言する必要がある、でもhogeメソッドを一行だけでいいから呼ばせてほしい・・・そんな時はこうするとコンパイルを通過することができます。

var s:Sprite = new HogeClass();
s["hoge"]();



//ちなみに
var s2:Sprite = new Sprite();
s2["hoge"]();
//でもコンパイルは通りますが実行時に結局エラーが出ます。

 

HTML5飯