我创建了一个条形图,它在第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;
}
答案 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
}