如果任何按钮上有一些事件,例如鼠标翻转事件,如何测量翻转事件发生了多少时间?
问问题
209 次
3 回答
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
于 2012-05-15T16:16:40.370 回答
1
好吧,除非您滚出然后重新启动,否则只会触发一次翻转。
所以这就是我要做的:
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 处理各自的事件。
于 2012-05-15T17:11:08.863 回答
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
}
希望能帮助到你。
于 2012-05-15T23:35:44.490 回答