AS3将MovieClip传递给super

时间:2011-10-11 13:31:34

标签: actionscript-3 movieclip super

我有太空飞船 movieclip,里面有movieclip 炮塔

Spaceship extends Unit class,我想要旋转炮塔。

在我的Spaceship constructor中,我使用super(this.turret);,但这总是返回null

传递其他变量是有效的,在调用super()之前,我可以成功追踪this.turret

那为什么我不能把它传给超级?我该如何解决这个问题?

[编辑] 当调用super()时,它可能与炮塔不可用/添加到舞台有关吗?如果是这样,我怎么能处理这个问题并将其变为“单位”呢?

1 个答案:

答案 0 :(得分:0)

当您将turret传递到constructor时,您只会使用该实例名称传递对MovieClip的引用。 Unit constructor对参数做了什么?我想你的Unit类不应该有炮塔变量。

更新1:

public class SpaceShip extends Unit
{

    public var turret : MovieClip;

    public function SpaceShip()
    {
        super();
    }

}

// Access from other class where ship has been referenced
public class Test extends Sprite
{

    public var ship : SpaceShip;

    public function ship()
    {
        // access the public variable (reference) turrent
        ship.turrent.rotation += 25;
    }

}