AS3 - 尝试声明影片剪辑的值

时间:2012-08-18 22:57:33

标签: actionscript-3 movieclip

好的,我在Bullet.as文件中有以下代码:

public var impact:MovieClip;

public function Bullet():void
{
    addEventListener(Event.ADDED_TO_STAGE, whenAdded);
}

function whenAdded(e:Event)
{
    if(this is zArrow){
       power = -1;
       speed = 15;
       impact = arrowImpact;
       trace(impact);
    }
    if(this is Dice){
       power = -Math.round(Math.random()*5 + 1);
       speed = 10;
       impact = diceImpact
    }
}

请参阅,我正在尝试设置" public var impact的值:MovieClip"作为影片剪辑" arrowImpact"或者" diceImpact"。我想要的是每当子弹与敌人发生碰撞时,它会留下一个冲击图像,我试图根据碰撞的子弹来改变显示的影响。

我可以使用此设置更改所有其他变量,如功率和速度,但我无法声明哪个影响影片剪辑"影响"影片剪辑变量是。

1 个答案:

答案 0 :(得分:0)

从我现在理解你的问题的方式来看,你想从图书馆中提取这些特定的电影剪辑。如果我没有记错的话。为此,您需要将库中的每个影片剪辑与扩展MovieClip的AS类配对。

确保选中“Export for Actionscript”并为每个类创建所需的课程。然后,在Bullet的代码中,您可以创建它们的新实例。所以说:

impact = new ArrowImpact)();

或DiceImpact,具体取决于您的班级。

希望这与你想要的一致。

为了使用这些,我建议按以下方式创建一个getImpact方法:

public function getImpactMC():MovieClip
{
    return impact;
}

然后,您在主文档中需要做的就是addChild从此方法中获得适当的影响。但是,请注意,在将stage作为子项添加到舞台上之前,需要调整impactMC的x和y值,以确保它显示在正确的位置。

很高兴这有帮助!