我对整个编程工作完全陌生,我真的需要帮助。所以基本上,我试图制作一个健康条,它会根据点击的按钮而增加或减少。我制作了一个有101帧的健康条电影剪辑(我包括零帧),并将其放在电影剪辑的动作脚本层:
var health:Number = 0;
if(health == 0)
{
gotoAndStop("1")
}
if(health == 1)
{
gotoAndStop("2")
}
if(health == 2)
{
gotoAndStop("3")
}
基本上,在舞台上,我有一个叫fortyfiveup_btn的按钮,它被命令这样做:
var health:Number = 0;
fortyfiveup_btn.addEventListener(MouseEvent.CLICK, fortyfiveupClick);
function fortyfiveupClick(event:MouseEvent):void{
health = health+45
}
我很快意识到,两个健康变量,一个用于按钮,另一个用于健康条,不会交互。如果单击该按钮,健康状况将转到相关的帧或百分比,我该如何做到这一点?
谢谢你的回答,我很感激你能给我的帮助:)
如果answer == yes
对我的评论你应该这样做:
您需要给movieclip一个instancename(也许是lifebar),然后从stage开始,您可以使用lifebar.health
访问"lifebar"中的健康状况。
所以你需要这个在你的舞台上:
//You can delete the var health:Number = 0;
fortyfiveup_btn.addEventListener(MouseEvent.CLICK, fortyfiveupClick);
function fortyfiveupClick(event:MouseEvent):void{
//You can write this, too: lifebar.health += 45;
lifebar.health = lifebar.health+45;
}
你甚至可以优化你的生命线脚本,不要使用101倍的if(health == x)
。你也可以使用这个:
gotoAndStop(health + 1);
(我认为这是在ENTER_FRAME
事件中?)
编辑:
一些错误对策:
//Don't let health decrease below 0
if(health < 0) health = 0;
//And don't above 100
else if(health > 100) health = 100;
gotoAndStop(health + 1);
如果不使用十进制数,请使用int
而不是Number
;如果不使用负整数,则使用uint
(当数字可能降至0以下时会出错,因此为了您的健康,我们使用int
):
health:int = 0;