好的,我在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"。我想要的是每当子弹与敌人发生碰撞时,它会留下一个冲击图像,我试图根据碰撞的子弹来改变显示的影响。
我可以使用此设置更改所有其他变量,如功率和速度,但我无法声明哪个影响影片剪辑"影响"影片剪辑变量是。
答案 0 :(得分:0)
从我现在理解你的问题的方式来看,你想从图书馆中提取这些特定的电影剪辑。如果我没有记错的话。为此,您需要将库中的每个影片剪辑与扩展MovieClip的AS类配对。
确保选中“Export for Actionscript”并为每个类创建所需的课程。然后,在Bullet的代码中,您可以创建它们的新实例。所以说:
impact = new ArrowImpact)();
或DiceImpact,具体取决于您的班级。
希望这与你想要的一致。
为了使用这些,我建议按以下方式创建一个getImpact方法:
public function getImpactMC():MovieClip
{
return impact;
}
然后,您在主文档中需要做的就是addChild从此方法中获得适当的影响。但是,请注意,在将stage作为子项添加到舞台上之前,需要调整impactMC的x和y值,以确保它显示在正确的位置。
很高兴这有帮助!