您好,感谢您阅读本文。 我在闪存中使用as3制作了按钮,但是我想要做的是在按下一个按钮时使它们处于非活动状态几秒钟。通常我会使用谷歌来解决这类问题,但我甚至不知道如何正确地说出来。 谢谢
答案 0 :(得分:0)
你可以:
至于做几秒钟,请查看计时器类。这link应该会有所帮助。典型的模式是这样的:
var myTimer:Timer = new Timer(1000, 1); // 1 second
myTimer.addEventListener(TimerEvent.TIMER, runOnce);
myTimer.start();
function runOnce(event:TimerEvent):void {
trace("runOnce() called @ " + getTimer() + " ms");
}
您需要做的就是重新启用回调作为第2行的方法,您的按钮将被禁用1秒。
答案 1 :(得分:0)
尝试将其用作按钮的基类:
package
{
import flash.display.SimpleButton;
import flash.events.MouseEvent;
import flash.events.Event;
public class MyButton extends SimpleButton
{
// vars
public const DELAY:uint = 30;
private var _timer:int = 0;
/**
* Constructor
*/
public function MyButton()
{
addEventListener(MouseEvent.CLICK, _click);
}
/**
* Called on Event.ENTER_FRAME
*/
private function _handle(e:Event):void
{
_timer --;
if(_timer < 1) removeEventListener(Event.ENTER_FRAME, _handle);
}
/**
* Called on MouseEvent.CLICK
*/
private function _click(e:MouseEvent):void
{
if(_timer > 0) return;
_timer = DELAY;
addEventListener(Event.ENTER_FRAME, _handle);
// do your stuff below
clickAction();
}
/**
* Override this and fill with your actions
*/
protected function clickAction():void
{
trace("override me");
}
}
}
以下是覆盖MyButton中clickAction()
方法的示例:
package
{
public class MyPlayButton extends MyButton
{
override protected function clickAction():void
{
trace("play button clicked");
}
}
}
答案 2 :(得分:0)
我按照按钮的方式,只需将按钮的enabled
属性设置为false
一段时间,然后使用Timer
。< / p>
myBut.addEventListener(MouseEvent.CLICK, doStuff);
function doStuff(e:MouseEvent){
//write whatever the button does here
disableBut();
}
function disableBut(){
myBut.enabled = false;
var timer:Timer = new Timer(3000, 1);
timer.addEventListener(TimerEvent.TIMER, enableBut);
timer.start()
}
function enableBut(e:TimerEvent){
myBut.enabled = true;
}
请记住,禁用该按钮的时间长度是在Timer()
构造函数的第一个参数中设置的,以毫秒为单位。在我的示例中,您可以看到myBut
被禁用3秒钟。