2012-07-15 56 views
0

所以基本上我正在制作一个游戏,其中点击一个按钮来减少健康栏中的健康数量。我在舞台上有一个名为fortyfivedown_btn的按钮,以及一个健身杆,它是一个101帧(包括零)动画片段。健康栏具有生命栏的实例名称。在舞台上,按键编码是:Actionscript 3:健康栏和按钮

fortyfivedown_btn.addEventListener(MouseEvent.CLICK, fortyfivedownClick); 
function fortyfivedownClick(event:MouseEvent):void{ 
    lifebar.health = lifebar.health-45; 
    } 

里面的healthbar影片剪辑,我有编码一层是:

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的healthbar影片剪辑里面?任何帮助表示赞赏。

(编辑)

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

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

+2

你的代码是很混乱的,为什么你有函数外面的轨迹附加额外支撑?我认为你不了解时间线中的代码是如何工作的,只有在输入框架时才会触发代码。您需要运行状况为与MovieClip相关的类中的变量,而不是时间轴上的变量。理想情况下,我将使用setter方法使用您基本显示的逻辑来调整它在MovieClip中的帧。发布您的FLA将有所帮助。 – shaunhusain 2012-07-16 01:28:09

+0

我已经上传了fla文件。 – Triple 2012-07-16 03:32:27

+0

刚刚添加我的答案(也有一些格式化问题在那里)现在应该是好的,让我知道如果有问题,但我尝试了当地和工作得很好。 – shaunhusain 2012-07-16 03:59:53

回答

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

+0

我现在工作,非常感谢你的帮助。 – Triple 2012-07-16 04:04:10

+0

没问题我实际上有一个解决方案,我最好在这里发布媒体消息。这一个我正在使用一个类,使用getter和setter,fla和需要在同一个目录中定义healthbar属性。 – shaunhusain 2012-07-16 04:10:25

+0

非常感谢你,你超越了!我会检查出来,而且可能会这样做。 – Triple 2012-07-16 04:31:24