Actionscript 3:如何使movieclip变量与舞台上的变量一起工作(Healthbar帮助)



我对整个编程工作完全陌生,我真的需要帮助。所以基本上,我试图制作一个健康条,它会根据点击的按钮而增加或减少。我制作了一个有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;

最新更新