2011-10-11 39 views
0

我有一个飞船movieclip,具有movieclip炮塔内。AS3通电影剪辑,超级

Spaceship extendsUnit class,在那里我想旋转炮塔。

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

传递其他变量的作品,并呼吁super()之前,我可以成功地跟踪this.turret

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

也许它与炮塔不可用/添加到舞台上但是当super()被调用时有关系吗?如果是这样,我怎么处理这个问题,然后把它变成“Unit”?

+0

什么说法在单位的构造类的类型? –

+0

我试过Object和MovieClip,但都返回null。 – Kris

+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; 
    } 

} 
+0

实际上,构造函数不会对它做任何事情,我只是希望它可用于aim()函数(在Unit.as中)。 – Kris

+1

然后,您需要将参考存储在变量中。 – Mattias

+0

是的,但我可以在哪里做到这一点?我无法在“单元”构造函数中访问它... – Kris