0

好的,我的 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”。我想要的是每当子弹与敌人相撞时,它会留下一个影响图像,我试图根据碰撞的子弹改变显示的影响。

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

4

1 回答 1

0

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

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

impact = new ArrowImpact)();

或 DiceImpact 取决于您的课程。

希望这与您想要的一致。

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

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

那么你需要在你的主文档中做的就是 addChild 这个方法的正确影响。但是,请注意,您需要先调整 ImpactMC 的 x 和 y 值,然后再将其作为子级添加到舞台上,以确保它显示在正确的位置。

很高兴这有帮助!

于 2012-08-18T23:25:55.063 回答