所以基本上我正在制作一个游戏,其中点击一个按钮以减少健康栏中的健康状况。我在舞台上有一个名为fortyfivedown_btn的按钮,以及一个健康栏,它是一个101帧(包括零)movieclip。运行状况栏的实例名称为生活栏。在舞台上,按钮编码是:
fortyfivedown_btn.addEventListener(MouseEvent.CLICK, fortyfivedownClick);
function fortyfivedownClick(event:MouseEvent):void{
lifebar.health = lifebar.health-45;
}
在healthbar movieclip中,我有一层编码:
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时?任何帮助表示赞赏。
(编辑)
好的,在回答跟踪问题时,如果我不这样做,就没有输出。我应该说我是这方面的初学者,我正在学习,所以请耐心等待。这是我的文件:
答案 0 :(得分:0)
好的,那么完全取出lifebar影片剪辑中的代码,你可以暂时删除该图层,然后用这个替换主场景中的代码,你应该得到你想要的结果:
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和随播文件作为文件,我个人会这样做,而不是在时间轴上包含这么多内容: