getDefinitionByName()、定義されていないクラス名(ActionScript)
動的なクラス名で参照する場合に使うgetDefinitionByName。
例えば、こんな感じ。
クラス名が「Class1〜Class30」みたいに連番になっている場合。
ループ処理で参照したくなる。
ところが、そもそもgetDefinitionByNameとは、swf内で定義されていないクラス名を参照しようとすると・・・
『 ReferenceError: Error #1065: 変数 Class1 は定義されていません。
at global/flash.utils::getDefinitionByName() 』
などと、怒られてしまう。
なんだ?と思いきや、結局リファレンスに書いてあるような
getDefinitionByName("flash.display.Sprite") as Class;
というのは、元々「flash.display.Sprite」が存在しているから、走るのです。
つまり、ActionScriptファイルであれば、しっかりとimportしてないもの、定義されてないものに関してはgetDefinitionByNameを使ったところで意味がなく、結局どこかでクラス名を定義しないといけないようです。
で、どう書くか・・・・?
こう書いたら動きました。なんか納得いかない!!
こんな書き方でいけるんだ。
例えば、こんな感じ。
クラス名が「Class1〜Class30」みたいに連番になっている場合。
ループ処理で参照したくなる。
ところが、そもそもgetDefinitionByNameとは、swf内で定義されていないクラス名を参照しようとすると・・・
『 ReferenceError: Error #1065: 変数 Class1 は定義されていません。
at global/flash.utils::getDefinitionByName() 』
などと、怒られてしまう。
なんだ?と思いきや、結局リファレンスに書いてあるような
getDefinitionByName("flash.display.Sprite") as Class;
というのは、元々「flash.display.Sprite」が存在しているから、走るのです。
つまり、ActionScriptファイルであれば、しっかりとimportしてないもの、定義されてないものに関してはgetDefinitionByNameを使ったところで意味がなく、結局どこかでクラス名を定義しないといけないようです。
で、どう書くか・・・・?
こう書いたら動きました。なんか納得いかない!!
こんな書き方でいけるんだ。

