从子类添加movieClip到舞台

时间:2014-01-31 06:13:12

标签: actionscript-3

我正在尝试创建一个单独的类,它绘制一个矩形并将其添加到舞台上,但问题是当我尝试从类本身执行此操作时,我在舞台上什么都没有。

我的设置如下:

Main.fla,其文档类为Main.as:

package 
{
import flash.display.Sprite;
import Window;
public class Main extends Sprite 
{

    public function Main():void 
    {
        var newWindow:Window = new Window();

    }

}

}

添加MovieClip的类

package {

import flash.display.MovieClip;
import flash.display.Sprite;

public class Window extends Sprite {

    public function Window(x:Number= 0, y:Number= 0, width:Number = 100, height:Number=100,title:String="Window"):void {
        var  newWindow:MovieClip = new MovieClip();
        addChild(newWindow);
        newWindow.graphics.beginFill(0xFF9966, 1);
        newWindow.graphics.drawRect(x, y, width, height);
        trace("Instance created");      
        }
    }
}

1 个答案:

答案 0 :(得分:0)

是的,您无法从新创建的对象访问stage,因为它不知道现有的阶段。您可以在其中添加孩子的唯一事情是this。但是,当您将对象正确地嵌入到容器中时,您可以立即执行更强大的操作,例如通过单个分配容器的xy属性来移动复杂窗口。所以,你要做的就是在你的主要课程中addChild(newWindow)

package 
{
import flash.display.Sprite;
import Window;
public class Main extends Sprite 
{

    public function Main()
    {  
        var newWindow:Window = new Window();
        addChild(newWindow); // THIS
        // also here you can do "newWindow.x=100;" for example
    }

}

}