我正在尝试创建一个单独的类,它绘制一个矩形并将其添加到舞台上,但问题是当我尝试从类本身执行此操作时,我在舞台上什么都没有。
我的设置如下:
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");
}
}
}
答案 0 :(得分:0)
是的,您无法从新创建的对象访问stage
,因为它不知道现有的阶段。您可以在其中添加孩子的唯一事情是this
。但是,当您将对象正确地嵌入到容器中时,您可以立即执行更强大的操作,例如通过单个分配容器的x
和y
属性来移动复杂窗口。所以,你要做的就是在你的主要课程中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
}
}
}