如果任何按钮上有某些事件,例如鼠标滚动事件,如何测量翻滚事件发生的时间?
答案 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
}
希望它有所帮助。