getDefinitionByName()、定義されていないクラス名(ActionScript)

2009年2月21日 00:47

動的なクラス名で参照する場合に使う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を使ったところで意味がなく、結局どこかでクラス名を定義しないといけないようです。

で、どう書くか・・・・?

こう書いたら動きました。なんか納得いかない!!




こんな書き方でいけるんだ。

Flash AS3 学習リスト

Author
秋葉秀樹

秋葉秀樹(アキバヒデキ)

DTP上がりのデザイナー
ノンプログラマー!
フリーランスのデザイナー。
IllustratorやPhotoshopを初代バージョンから使っているという事がウリ。
クリエイター育成機関などでお世話になり、先生として講義をしていたりします。

siteInformation

web creatorsに寄稿しています。 web creators 2009年10月号 web creators 2009年10月号 web creators 2009年10月号「Flashの動き表現アイデア」特集の131ページに『画像をタイル状に分割』というタイトルの記事を執筆しました。

web creators 2009年6月号の94~ 95ページに秋葉秀樹が執筆した記事「商品カテゴリを意識してビジュアルを強調する」が掲載されました。
テーマは「MovableType 4.xデザインカスタマイズを極める(前編)」です。

web creators 2009年2月号の147ページに記事を書きました。
テーマは「独学で始めるFlash作成講座」です。

info@akibahideki.com

powered by MovableType4
Powered by MovableType 4

セミナー情報|秋葉秀樹
カテゴリ