関数の開始から送信された変数に基づいて、クラスのインスタンスを作成しようとしています。
このクラスはdisplayObjectではなく、Flashライブラリにもありません。これは、以下が機能しないことを意味しているようです。
private function BasicControl(_stage:int):void {
var s1:tut_stage = getDefinitionByName("stage"+_stage) as tut_stage;
trace(s1);
s1.Begin();
}
これにより、次のようになります。
ReferenceError: Error #1065: Variable stage1 is not defined.
at global/flash.utils::getDefinitionByName()
at kazo::Main/BasicControl()[B:\Users\Kevin SSD\client\temp_tutorial\preview_src\kazo\Main.as:76]
at kazo::Main/SWFLoadComplete()[B:\Users\Kevin SSD\client\temp_tutorial\preview_src\kazo\Main.as:113]
ただし、次のように記述されている場合:
var s1:tut_stage = new stage1;
これは正常に機能します。
クラスがライブラリにない場合、クラスを動的に呼び出すにはどうすればよいですか?私の努力のすべてが結果を返さないようです。これを機能させる唯一の方法は、恐ろしい回避策を使用することです。
private function BasicControl(_stage:int):void {
var s1:tut_stage;
switch(_stage) {
case 1:
s1 = new stage1;
break;
case 2:
s2 = new stage2;
break;
}
}
ここで何かが足りないに違いありません-この場合、stage1をどのように呼び出す必要がありますか?