所以基本上我正在做一个游戏,在游戏中点击一个按钮来减少健康条中的生命值。我在舞台上有一个名为fortyfivedown_btn的按钮和一个健康条,它是一个101帧(包括零)的电影剪辑。健康条有一个实例名lifebar。在舞台上,按钮编码为:
fortyfivedown_btn.addEventListener(MouseEvent.CLICK, fortyfivedownClick);
function fortyfivedownClick(event:MouseEvent):void{
lifebar.health = lifebar.health-45;
}在健康条电影剪辑中,我有一层代码,那就是:
var health:int = 100;
gotoAndStop(health + 1);
if(health < 0) health = 0;
else if(health > 100) health = 100;
gotoAndStop(health + 1);所以,这就是我的代码。问题是,当点击按钮时,健康条不会关闭。我跟踪了按钮中的健康变量:
fortyfivedown_btn.addEventListener(MouseEvent.CLICK, fortyfivedownClick);
function fortyfivedownClick(event:MouseEvent):void{
lifebar.health = lifebar.health-45;
}
{
trace(lifebar.health);
}我看到输出是0。由于某种原因,按钮认为健康是0,而我在健康栏电影剪辑中声明它是100?任何帮助都是非常感谢的。
(编辑)
好的,作为跟踪问题的答案,如果我不这样做,就没有输出。我应该说我在这方面是一个初学者,而且我正在学习,所以请容忍我。这是我的fla文件:
发布于 2012-07-16 11:58:27
好的,把你生命条电影剪辑中的代码完全去掉,你现在可以删除那个层,然后用下面的代码替换你在主场景中的代码,你应该会得到你想要的结果:
fortyfivedown_btn.addEventListener(MouseEvent.CLICK, fortyfivedownClick);
var health:int = 100;
lifebar.gotoAndStop(101);
function fortyfivedownClick(event:MouseEvent):void{
health -= 45;
if(health < 0) health = 0;
else if(health > 100) health = 100;
lifebar.gotoAndStop(health + 1);
//Can write this also: lifebar.health += 45;
trace(health);
}有其他方法可以做到这一点,但考虑到您当前的设置,这将是最小的修改,以获得您想要的。另一个选项是设置子画面的宽度。
我上传了一个修改后的fla和伴随者作为文件,我个人将如何做这件事,而不是在时间线上包括太多的事情:
http://www.mediafire.com/?d38hbm32p71x1n8
https://stackoverflow.com/questions/11495856
复制相似问题