如何衡量闪存事件的时间?

时间:2012-05-15 16:11:11

标签: actionscript-3 flash flash-cs5

如果任何按钮上有某些事件,例如鼠标滚动事件,如何测量翻滚事件发生的时间?

3 个答案:

答案 0 :(得分:2)

您可以计算MOUSE_OVER和MOUSE_OUT之间的差异。

var myButton:Button = new Button();
var diff:Number = 0;
var startDate:Date;

myButton.addEventListener(MouseEvent.MOUSE_OVER, function(evt:MouseEvent):void {
    startDate = new Date();
});

myButton.addEventListener(MouseEvent.MOUSE_OUT, function(evt:MouseEvent):void {
    diff = (new Date()).time - startDate.time;
    if (diff >= 5000)
         // do something
});

我没有Flash Builder,但这应该是一个好的开始。查看这些文档以获取更多信息:

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/events/MouseEvent.html

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/Date.html#time

答案 1 :(得分:1)

好吧,除非yuo推出然后重新开启,否则只会触发一次翻转。

所以这就是我要做的事情:

private var timeoutId:uint=-1;
private function onRollover(e:MouseEvent):void {
    timeoutId=setTimeout(play, 5000);
}

private function onRollout(e:MouseEvent):void {
    if(timeoutId != -1) clearTimeout(timeoutId);
}

private function play():void {
    //code to play music
}

当然,onRollover和onRollout会处理各自的事件。

答案 2 :(得分:1)

也许你应该看看 Timer 类。这是一个简单的例子,说明你可以用它做什么:

var timer:Timer = new Timer(5000,1);

timer.addEventListener(TimerEvent.TIMER, playVideo);

btnInstance.addEventListener(MouseEvent.MOUSE_OVER, 
                             function(evt:MouseEvent):void {
                                timer.start();
                             });

btnInstance.addEventListener(MouseEvent.MOUSE_OUT, 
                             function(evt:MouseEvent):void {
                                timer.stop(); 
                             });

function playVideo(evt:TimerEvent):void {
    // play video
}

希望它有所帮助。