滑动手势,As3

时间:2016-09-06 06:41:18

标签: actionscript-3 flash swipe swipe-gesture

你好我试图让我的gotoAndStop按钮作为滑动而不是onpress。但它只工作一次,我做的第二帧不再工作,我不知道错误请帮帮我,谢谢

 Multitouch.inputMode = MultitouchInputMode.GESTURE;


story1chapter3.addEventListener(TransformGestureEvent.GESTURE_SWIPE , onSwipe);
function onSwipe (e:TransformGestureEvent):void{
if (e.offsetX == 1) { 
//User swiped towards right(back button)
story1chapter3.x += 100;
gotoAndStop(31);
}
if (e.offsetX == -1) { 
//User swiped towards left(next)
story1chapter3.x -= 100;
gotoAndStop(159);
} 
}

此代码正在运行,但是当我尝试在不同的框架中创建另一个与此相同的代码时,它不再起作用,我也更改了实例名称,因此它不会重复

Multitouch.inputMode = MultitouchInputMode.GESTURE;


 story1chapter2.addEventListener(TransformGestureEvent.GESTURE_SWIPE , onSwipe);
 function onSwipe2 (e:TransformGestureEvent):void{
 if (e.offsetX == 1) { 
  //User swiped towards right(back button)
 story1chapter2.x += 100;
 gotoAndStop(30);
 }
 if (e.offsetX == -1) { 
  //User swiped towards left(next)
  story1chapter1.x -= 100;
   gotoAndStop(27);
    } 
    }

PS我也尝试将onSwipe2更改为onSwipe,但错误说明其重复

1 个答案:

答案 0 :(得分:0)

这不是干净的方式,通过有两个相似的功能,但这是另一个主题:)我认为问题是当你第二次滑动时,BOTH事件监听器正在获取滑动事件,并且两者都试图的gotoAndPlay。尝试在滑动时删除事件侦听器:

story1chapter3.addEventListener(TransformGestureEvent.GESTURE_SWIPE , onSwipe);
function onSwipe (e:TransformGestureEvent):void{
  if (e.offsetX == 1) { 
  //User swiped towards right(back button)
  story1chapter3.x += 100;
  story1chapter3.removeEventListener(TransformGestureEvent.GESTURE_SWIPE , onSwipe);
  gotoAndStop(31);
}
  if (e.offsetX == -1) { 
  //User swiped towards left(next)
  story1chapter3.x -= 100;
  story1chapter3.removeEventListener(TransformGestureEvent.GESTURE_SWIPE , onSwipe);
  gotoAndStop(159);
} 
}

更好的方法是在舞台上只有一个事件监听器,并且有一个功能可以根据你当前的位置将玩家带到正确的章节,那么你就不需要乱用几个功能但是一切都在一个地方