Actionscript 3 AS3-尝试声明电影剪辑的值
好的,我的Bullet.as文件中有以下代码:Actionscript 3 AS3-尝试声明电影剪辑的值,actionscript-3,movieclip,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
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”的值设置为电影剪辑“arrowmimpact”或“diceImpact”。我想要的是,每当一颗子弹与敌人相撞时,它都会留下一张撞击图像,我试图根据子弹碰撞的部位来改变显示的撞击效果
我可以使用此设置更改所有其他变量,如功率和速度,但我无法声明“impact”电影剪辑变量是哪个impact电影剪辑。从我现在理解您的问题的方式来看,您希望从库中提取这些特定的电影剪辑。如果我没弄错的话。为此,需要将库中的每个电影剪辑与扩展MovieClip的AS类配对 确保选中“导出Actionscript”,并为每个脚本创建所需的类。然后,在项目符号的代码中,可以创建它们的新实例。所以让它说:
impact = new ArrowImpact)();
或者根据你的职业而定
希望这是你想要的
为了使用这些方法,我建议创建一个getImpact方法,其思路如下:
public function getImpactMC():MovieClip
{
return impact;
}
然后,您需要在主文档中执行的所有操作就是添加此方法的适当影响。但是,请注意,在将impactMC作为子对象添加到舞台上之前,需要调整其x和y值,以确保其显示在正确的位置
很高兴这有帮助 不,影响不是在舞台上。。这可能就是跟踪一直返回null的原因。我试图声明一个变量,这样当碰撞测试(在文档类中)将“影响”添加到stage时,它将添加正确的一个。我只是希望我可以将这个变量声明为电影剪辑,这样碰撞测试就可以调用Bullet.as类中的impact电影剪辑。所以本质上你想在Bullet.as中创建一个新的电影剪辑?如中所示,这些影响动画是否保存为变量?如果我理解正确的话,我的编辑应该能反映这一点。太好了。这些痕迹显示了正确的电影剪辑。现在,希望我可以在文档类碰撞测试函数中正确引用它们。