0
这是我试图实例化为我的主类的类:的addChild定制类AS3
public class Character extends Sprite {
[Embed(source='../lib/front1.svg')]
private var front1Class:Class;
private var crosshair:Sprite = new front1Class();
public function Character() {
trace("started");
Mouse.hide();
crosshair.scaleX = 5;
crosshair.scaleY = 5;
this.addChild(crosshair);
stage.addEventListener(Event.ENTER_FRAME, MrEveryFrame);
stage.addEventListener(MouseEvent.CLICK, click);
}
private function click(evt:MouseEvent):void {
trace("clicked @ " + evt.stageX + "," + evt.stageY);
}
public function MrEveryFrame(e:Event):void
{
crosshair.x = mouseX - 15;
crosshair.y = mouseY - 15;
}
}
当我将它设置为文档类,它工作正常。
但是......当我提出这是我的文档类,并试图从那里调用它:
public class Shell extends Sprite
{
private var character:Sprite = new Character();
public function Shell()
{
addChild(character);
}
}
它打破,而不再显示Sprite对象(尽管它抹去的鼠标指针)。
这里的交易是什么?您不能将自定义精灵或动画片段类实例化为DisplayObject类?
做内部字符一个跟踪:跟踪(“阶段存在吗?“+阶段);实例化时可能为空。 – meddlingwithfire
如果您在构造函数中扩展Sprite,则需要调用'super();'来获取属于Sprite的所有内容。所以,就在你的行跟踪(“开始”)之前;'添加行'super();'看看是否有帮助。 – Ian