2013-09-22 50 views
0

我正在使用Air Android應用程序,我想基於用戶手勢顯示和隱藏菜單。 如何將手勢識別設置爲特定區域而不是整個舞臺? (例如,從y 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

您應該將組件添加到舞臺(空的Sprite容器允許調用它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