我有以下ios应用程序的代码,
Multitouch.inputMode = MultitouchInputMode.GESTURE;
var mySprite:Sprite = new Sprite();
mySprite.addEventListener(TransformGestureEvent.GESTURE_PAN, onPan);
mySprite.addEventListener(TransformGestureEvent.GESTURE_SWIPE, onSwipe);
mySprite.addEventListener(TransformGestureEvent.GESTURE_ZOOM, onZoom);
mySprite.addEventListener(MouseEvent.CLICK, onClick);
mySprite.graphics.beginFill(0x336699);
mySprite.graphics.drawRect(0, 0, 80, 80);
mySprite.x = 100;
mySprite.y = 100;
var myTextField:TextField = new TextField();
myTextField.y = 200;
addChild(mySprite);
addChild(myTextField);
myTextField.text = "Wait";
function onClick(e:MouseEvent):void {
myTextField.text = "onClick";
}
function onPan(e:MouseEvent):void {
myTextField.text = "onPan";
}
function onSwipe(e:TransformGestureEvent):void {
myTextField.text = "onSwipe";
}
function onZoom(e:TransformGestureEvent):void {
myTextField.text = "onZoom";
}当我在itouch上测试这个应用程序时,除了onPan之外,所有的东西都可以正常工作。似乎无论我做什么,TransformGestureEvent.GESTURE_PAN事件都不会触发。当我在按下的同时移动手指时,会调用onSwipe。如果我注释掉了TransformGestureEvent.GESTURE_SWIPE的事件侦听器,那么当我在按下的同时移动手指时,什么都不会被调用。
我的摇摆手势做错了吗?TransformGestureEvent.GESTURE_PAN和TransformGestureEvent.GESTURE_SWIPE手势有什么区别?
非常感谢您的回复。
发布于 2012-09-16 02:06:59
TransformGestureEvent.GESTURE_PAN可以用两根手指工作。
试一试,你会发现当你用两根手指按下屏幕并移动时,对象将开始平移。
改用MouseEvent.MOUSEMOVE
编辑:从一本手册中看这句话:
当用户用两个手指抓取并拖动对象时,将触发TransformGesture Event.GESTURE_PAN事件并调用onGesturePan方法。在onGesturePan方法中,此事件的offsetX和offsetY值将写入TextArea组件的text属性。添加事件的offsetX和offsetY值将对象的x和y设置为在舞台上移动对象。
希望这能有所帮助。
发布于 2012-06-09 07:55:26
只有当我做双指按压和移动时,Pan才能起作用。我找不到一个恰当的描述来描述这些不同的手势到底是什么,但这就是它看起来的样子。
发布于 2013-08-18 00:36:59
function onPan(e:MouseEvent):必须为onPan(e:TransformGestureEvent)
https://stackoverflow.com/questions/10628783
复制相似问题