动作脚本3:健康栏和按钮

时间:2012-07-15 21:42:28

标签: actionscript-3 variables layer movieclip

所以基本上我正在制作一个游戏,其中点击一个按钮以减少健康栏中的健康状况。我在舞台上有一个名为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时?任何帮助表示赞赏。

(编辑)

好的,在回答跟踪问题时,如果我不这样做,就没有输出。我应该说我是这方面的初学者,我正在学习,所以请耐心等待。这是我的文件:

https://skydrive.live.com/embed?cid=9AB08B59DCCDF9C6&resid=9AB08B59DCCDF9C6%21107&authkey=AGqFHhlHnvOXvuc

1 个答案:

答案 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和随播文件作为文件,我个人会这样做,而不是在时间轴上包含这么多内容:

http://www.mediafire.com/?d38hbm32p71x1n8