繁体   English   中英

Flash AS3按住按钮

[英]Flash AS3 Press and Hold Button

我不是Flash方面的专家,但是我在AS2中找到了一种制作“按住”按钮的方法。 现在,我正在使用AS3,我希望将此代码转换为AS3 有人可以帮忙吗?

stop();

function startTimer(mc, conversionTime) {
    mc.onEnterFrame = function() {
        if ((getTimer() / 1000) - conversionTime > 1) {
            delete this.onEnterFrame;
            gotoAndStop(3);
        }
    };
}
button1.onPress = function() {
    var conversionTime:Number = getTimer() / 1000;
    startTimer(this, conversionTime);
    this.onRelease = function() {
        if (this.onEnterFrame != null) {
            gotoAndStop(2);
        }
        delete this.onEnterFrame;
    };
};

谢谢 !

在AS3中,它看起来像这样:

mc.addEventListener(MouseEvent.MOUSE_DOWN, _mouseDown);
var myTimer:Timer = new Timer(5000,1);
myTimer.addEventListener(TimerEvent.TIMER_COMPLETE, _buttonPressedEnoughLong);

private function _mouseDown(e:MouseEvent):void 
{
    stage.addEventListener(MouseEvent.MOUSE_UP, _mouseUp);
    myTimer.start();
}

private function _mouseUp(e:MouseEvent):void 
{
    stage.removeEventListener(MouseEvent.MOUSE_UP, _mouseUp);
    myTimer.reset();
}

private function _buttonPressedEnoughLong(e:TimerEvent) : void {
    e.currentTarget.reset();
    // Do stuff
}

您需要按住按钮5秒钟,然后事件才会触发。

mc.onEnterFrame = function() ...更改为:

mc.addEventListener(Event.ENTER_FRAME, onEvent);

function onEvent(e:Event)
{
  if ((getTimer() / 1000) - conversionTime > 1)
  {
       this.removeEventListener(Event.ENTER_FRAME, onEvent);
       gotoAndStop(3);
  }
}

button1.onPress = function() ...更改为:

button1.addEventListener(MouseEvent.MOUSE_DOWN, onBtnDown);

function onBtnDown(e:MouseEvent)
{
  var conversionTime:Number = getTimer() / 1000;
  startTimer(this, conversionTime);
  function onBtnUp(e:MouseEvent)
  {
    if (this.hasEventListener(Event.ENTER_FRAME))
    {
        gotoAndStop(2);
        this.removeEventListener(Event.ENTER_FRAME, onEvent);
    }
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM