1

如何将已放入数组的 MovieClip 添加到舞台?以下代码是一个单独的 .as 文件,与 main.fla 位于同一级别,我尝试了很多次,但收到错误消息 -

“ReferenceError:错误 #1065:未定义变量阶段。在 main_fla::MainTimeline/frame1() 的 Set1() 处”

我能怎么做?感谢您的帮助!

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]);
                }

        }

    }

}
4

2 回答 2

2

你有点搞混了。stage不是魔术变量,而是从DisplayObject基类继承的属性。当显示对象添加到舞台时,该属性会在内部设置。因此,在您的情况下,您的类需要继承自一个DisplayObject- 可能是Sprite类。Stage或者只是在调用函数时从外部注入对

于 2012-12-02T19:34:21.517 回答
0

首先,您需要设置 Main flash 文件类。您可以通过单击 fla 中的 stage 来完成。文件并在属性中编辑你的类(应该看起来像这样(class: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]);
                    }

            }

        }

    }
于 2012-12-02T20:36:39.740 回答