gpt4 book ai didi

actionscript-3 - Starling AS3 触摸事件按住

转载 作者:行者123 更新时间:2023-12-02 03:54:18 26 4
gpt4 key购买 nike

我已经搜索了一段时间,寻找一个清晰的示例,说明如何编写允许用户按住的按钮。当发生这种情况时,我想执行一些代码。

我已经实现了 TouchEvent.Touch 和 touchPhase.Began,但它只触发一次。

我找不到关于如何实现这一点的明确解释。如有任何帮助,我们将不胜感激。

btnPress.addEventListener(TouchEvent.TOUCH, isPressed);

private function isPressed(event:TouchEvent){
var touch:touch = event.getTouch(btnPress, TouchPhase.BEGAN);
if(touch)
{
trace("pressed");
}
}

最佳答案

Starling TouchEventTouchPhase 一开始可能会有点困惑。当用户开始触摸屏幕时,TouchPhase.BEGAN 仅触发一次。如果您想要在手指放在按钮上时执行某些代码,请在 TouchPhase.BEGAN 阶段开始执行,并在 TouchPhase.ENDED 阶段停止执行code> 阶段(当用户停止触摸屏幕时也仅触发一次)。

例如,在您的情况下,您可以执行以下操作:

btnPress.addEventListener(TouchEvent.TOUCH, isPressed);

private function isPressed(event:TouchEvent):void
{
var touch:Touch = event.getTouch(btnPress);

if(touch.phase == TouchPhase.BEGAN)//on finger down
{
trace("pressed just now");

//do your stuff
addEventListener(Event.ENTER_FRAME, onButtonHold);
}

if(touch.phase == TouchPhase.ENDED) //on finger up
{
trace("release");

//stop doing stuff
removeEventListener(Event.ENTER_FRAME, onButtonHold);
}
}

private function onButtonHold(e:Event):void
{
trace("doing stuff while button pressed!");
}

希望这有助于澄清一些事情!

关于actionscript-3 - Starling AS3 触摸事件按住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13174541/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com