如何从新的Date()获得一个百分比;

时间:2014-03-18 01:36:07

标签: actionscript-3 flash actionscript clock percentage

我现在有一个数字时钟,我需要玉米才能知道10秒过去了,这样它就可以进入下一帧了。我很难找到如何收集10秒并使其成为例如100% 它9:30:21我按下了按钮 应该在9:30:31完成

但是我想基于那个10秒创建一个百分比吧..继承我的代码

 farmSlot1.addEventListener(MouseEvent.CLICK, farmClick1);


 var startTime: Date = new Date();
 var startSec: Number = startTime.seconds;





 function farmClick1(e: MouseEvent): void {
addChild(menu);
menu.x = 400;
menu.y = 90;
menu.buyCornBtn.addEventListener(MouseEvent.CLICK, buyCorn1);
 }

 function buyCorn1(e: MouseEvent): void {
var startTime: Date = new Date();
startSec = startTime.seconds;
menu.buyCornBtn.addEventListener(Event.ENTER_FRAME, cornloading1);
farmSlot1.progressB.visible = true;
menu.buyCornBtn.removeEventListener(MouseEvent.CLICK, buyCorn1);
removeChild(menu);
 }


function cornloading1(event: Event): void {
    var now: Date = new Date();
    var hr: Number = now.hours;
    var min: Number = now.minutes;
    var sec: Number = now.seconds;
    var finished: Number = startSec + 5
    var percent = Math.round((finished-sec) * 100)
    if(sec < finished){
    farmSlot1.loader_txt.text = percent
    Object(root).farmSlot1.progressB.bar.scaleX = percent;
    trace("hit");
    }else if (sec == finished && farmSlot1.currentLabel != "corn") {
        removeEventListener(Event.ENTER_FRAME, cornloading1);
        trace("It did it");
        farmSlot1.loader_txt.text = ""
        farmSlot1.gotoAndStop("corn");

 }
 }

1 个答案:

答案 0 :(得分:0)

首先,正如我所见,你正在编写Flash框架内的代码。在类中包含代码是更好的方法,可以避免将来出现大量问题。以下是描述使用类的一些基本方法的链接: http://www.kirupa.com/developer/as3/classes_as3_pg1.htm

回答你的问题: 您只需使用flash.utils.Timer类而不是使用Date和ENTER_FRAME事件:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/utils/Timer.html

一些代码:

//Import timer class
import flash.utils.Timer;

...

//In the class's body
//Create a timer instance. Timer will be executed 10 times every 100 milliseconds
private var timer:Timer = new Timer(100, 10);

...

//Somewhere in class's method (usually in the constructor)
timer.addEventListener(TimerEvent.TIMER, timerHandler);
timer.addEventListener(TimerEvent.TIMER_COMPLETE, timerCompleteHandler);

//Add click handler
button.addEventListener(MouseEvent.CLICK, buttonClickHandler);
...

private function buttonClickHandler(event:MouseEvent):void
{
    //Do some stuff and start timer.
    timer.start();
}


private function timerHandler(event:TimerEvent):void
{
    //Update progress indicator
}

private function timerCompleteHandler(event:TimerEvent):void
{
    //1 second is over so do some stuff.
}