如何将我放入数组的MovieClip添加到舞台上? 以下代码是一个单独的.as文件,与main.fla位于同一级别 我已经尝试了很多次但是我收到了错误消息 -
“ReferenceError:错误#1065:未定义变量阶段。在Set1() 在main_fla :: MainTimeline / frame1()“
我该怎么办?感谢您的帮助!!
package
{
import flash.display.MovieClip;
import flash.display.Stage;
public class Set1
{
private var map:Array=new Array();
public function Set1()
{
for (var i:Number=0; i<5; i++)
{
var cell_mc=new cell();
cell_mc.x = 50+ i*cell_mc.width;
cell_mc.y = 50;
cell_mc.className=i;
map[i] = cell_mc;
trace(map[i].className);
stage.addChild(map[i]);
}
}
}
}
答案 0 :(得分:2)
你有点混乱。 stage
不是魔术变量,而是从DisplayObject
基类继承的属性。将一个显示对象添加到舞台时,该属性将在内部设置。因此,在您的情况下,您的类需要继承自DisplayObject
- 可能是Sprite
类。或者,只需在调用函数时从外部注入Stage
的引用
答案 1 :(得分:0)
首先,您需要设置主Flash文件类。您可以通过单击fla中的舞台来完成此操作。在属性中编辑和编辑您的类(应该看起来像这样(类:Set1)) 下面的代码应该可以正常工作
package
{
import flash.display.MovieClip;
import flash.display.Sprite;
public class Set1 extends Sprite
{
private var map:Array=new Array();
public function Set1()
{
for (var i:Number=0; i<5; i++)
{
var cell_mc=new cell();
cell_mc.x = 50+ i*cell_mc.width;
cell_mc.y = 50;
cell_mc.className=i;
map[i] = cell_mc;
trace(map[i].className);
addChild(map[i]);
}
}
}
}