2013-09-22 4 views
0

Я работаю над Android-приложением Air, и я хотел бы показать и скрыть меню, основанное на жесте пользователя. Как установить распознавание жестов в определенную область вместо всего этапа? (Например, в области от у 0 до 100 пикселей)Как распознать жест скольжения в определенной области?

Multitouch.inputMode = MultitouchInputMode.GESTURE; 
stage.addEventListener(TransformGestureEvent.GESTURE_SWIPE , onSwipe); 

function onSwipe (e:TransformGestureEvent):void{ 
if (e.offsetY == 1) { 
//User swiped towards bottom 
showMenu() 
} 
else if (e.offsetY == -1) { 
//User swiped towards top 
hideMenu() 
} 
} 

ответ

0

Вы должны добавить компонент на сцену (пустой спрайт контейнер позволяет называть его MySprite) с соответствующими размерами и местоположения, а затем у вас есть 2 варианта:

вариант 1

http://www.republicofcode.com/tutorials/flash/as3swipegesture/

вариант 2

добавить проверку, чтобы увидеть, если красть было сделано на MySprite

function onSwipe (e:TransformGestureEvent):void{\ 
**if (e.target=!mySprite){return}** 
if (e.offsetY == 1) { 
//User swiped towards bottom 
showMenu() 
} 
else if (e.offsetY == -1) { 
//User swiped towards top 
hideMenu() 
} 
} 

Вариант 3

Multitouch.inputMode = MultitouchInputMode.GESTURE; 

var mySprite = new Sprite(); 
mySprite.addEventListener(TransformGestureEvent.GESTURE_SWIPE , onSwipe); 
mySprite.graphics.beginFill(0x336699); 
mySprite.graphics.drawRect(0, 0, 100, 80); 
var myTextField = new TextField(); 
myTextField.y = 200; 
addChild(mySprite); 
addChild(myTextField); 

function onSwipe(evt:TransformGestureEvent):void { 

    if (evt.offsetX == 1) { 
    myTextField.text = "right"; 
    } 
    if (evt.offsetY == -1) { 
    myTextField.text = "up"; 
    } 
    myTextField.text = evt.phase; 

} 
+0

Я не могу использовать спрайт, потому что это будет накладывать текстовое поле. Можно ли вместо этого использовать xy-координаты? – Jay

+0

Добавлен новый пример – Eran

Смежные вопросы