2013-03-01 85 views
2

我有这个播放器类是一个动画片段, 我试图从它设置它的宽度和高度,然后使其自身添加到舞台上 但由于某种原因,无论我做什么,this.width都返回0,并且只能从父类中设置大小。为什么会发生这种情况?在AS3中设置动画片段的宽度/高度

public class Player extends MovieClip { 

    public var head:MovieClip = new Head_normal_front(); 

    public function Player(stage:Stage){ 
     this.addChild(head); 
     this.width = 10; 
     this.height = 10; 
     stage.addChild(this); 

    } 

} 

感谢

回答

7

尝试类似如下:

public class Player extends MovieClip { 

    public var head:MovieClip = new Head_normal_front(); 

    public function Player(stage:Stage){ 
     this.addChild(head); 
     this.addEventListener(Event.ADDED_TO_STAGE, onAddedToStage); 
     stage.addChild(this); 
    } 

    private function onAddedToStage(e:Event):void 
    { 
     this.removeEventListener(Event.ADDED_TO_STAGE, onAddedToStage); 
     this.width = 10; 
     this.height = 10; 
    } 
} 

你应该修改显示对象的宽度/高度它们被添加到舞台后。我可能会将stage.addChild(this)移到Player外面。

+2

我已经打过,而MC或其他DisplayObject没有访问阶段,其宽度和高度是假的。添加到阶段可以解决问题。好答案。 – Vesper 2013-03-02 03:31:41