「未定義である可能性のあるメソッド」警告をとりあえずスルーする方法
こんにちは。スロースターター安藤です。
年明け最初のエントリーなので肩の力を抜いて小ネタでございます。
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"](); //でもコンパイルは通りますが実行時に結局エラーが出ます。