帧数等于数字 - 健康栏

时间:2012-10-07 01:50:46

标签: actionscript-3 flash

我创建了一个条形图,它在第1帧上已满,然后在第100帧上为空,我已将其变为补间形状。我想创建一个代码,当我按下某个按钮时,它耗尽了条形图,因此只要按住某个按钮,框架就会从1变为100,直到达到100。

我在考虑这样做的方法,但似乎不可能。

var maxHP:int = 100;
var currentHP:int = maxHP;
var percentHP:Number = currentHP / maxHP;

我希望%HP var等于条形,因此当它达到50时,它将到达第50帧,依此类推。

这是解决这个问题的正确方法吗?

感谢。


以下是我正在尝试修复的代码中使用的变量。此外,我正在创建的游戏有多个角色,所以我所指的栏目是在几个动画片段中。

基本上,当角色双跳时,它会飞行,并且条形消耗殆尽。一旦条形耗尽为0(或当PercentHP为0时),它应该结束飞行。之后,我希望酒吧能够加速回到100加时赛。

var percentHP = Number(Bar.CBar.CMana_bar.currentFrame) / Number(100);
var gravityConstant:Number = 1;   
var doubleJumpReady:Boolean = false;
var flyingJump:Boolean = false;
var upReleasedInAir:Boolean = false;

function loop(e:Event):void{
    //Flying
            if(upReleasedInAir == true){ // if the player releases the up arrow key
                upReleasedInAir = false; // set the variable to true
            }
            if(doubleJumpReady == false){
                doubleJumpReady = true;
            }
        } else { //if we are not touching the floor

            ySpeed += gravityConstant; //accelerate downwards

            //Flying
            if(upPressed == false && upReleasedInAir == false){
                upReleasedInAir = true;
                //trace("upReleasedInAir");
            }
            if(doubleJumpReady && upReleasedInAir){
                if(upPressed){ //and if the up arrow is pressed
                    flyingJump = true;
                    //trace("doubleJump!");
                    doubleJumpReady = false;
                    ySpeed = jumpConstant + 8; //set the y speed to the jump constant
                    gravityConstant = 0;
                    Bar.CBar.CMana_bar.play();
                    //trace(percentMP);
                }
                }
                if(Bar.CBar.CMana_bar.currentFrame == 100 && percentHP == 0){
            gravityConstant = 1;
            Bar.CBar.CMana_bar.stop();
            flyingJump = false;
            doubleJumpReady = false;
        }

2 个答案:

答案 0 :(得分:0)

如果您询问如何按号码到达相框,请使用MovieClip.gotoAndStop方法:

loaderBar.gotoAndStop(percentHP);

答案 1 :(得分:0)

您应该做的是将MOUSE_DOWN和MOUSE_UP事件附加到您的按钮。在栏的第1帧中键入stop();,然后使用MOUSE_DOWN和MOUSE_UP在栏中播放或停止动画。有点像:

button.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
button.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
function mouseDownHandler(e:Event):void{
bar.play();
} 
function mouseUpHandler(e:Event):void{
bar.stop();
percentHP = Number(bar.currentFrame) / Number(100); //If you still need to know the percent
}