AS3通电影剪辑,超级
问题描述:
我有一个飞船movieclip
,具有movieclip
炮塔内。AS3通电影剪辑,超级
Spaceship extends
Unit class
,在那里我想旋转炮塔。
在我的Spaceship constructor
中,我使用super(this.turret);
,但总是返回null
。
传递其他变量的作品,并呼吁super()
之前,我可以成功地跟踪this.turret
那么,为什么我不能把它传递给超?我该如何解决这个问题?
也许它与炮塔不可用/添加到舞台上但是当super()被调用时有关系吗?如果是这样,我怎么处理这个问题,然后把它变成“Unit”?
答
当您将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;
}
}
什么说法在单位的构造类的类型? –
我试过Object和MovieClip,但都返回null。 – Kris
请向我们展示宇宙飞船和单元类的所有相关部分。 –