2013-03-30 38 views
1

我已經使用Flash和AIR創建了3個或4個Android遊戲,而手勢輕掃和平移只是如此反應遲鈍,無法使用它們。例如,我正在嘗試使用平移手勢做滑塊,並且每3次至少錯過一次手勢。 相同的刷卡,我有一個遊戲的東西下降,不得不刷卡推動他們回來了一點,但它是一個5成功率!AS3 - 爲什麼手勢如此反應遲鈍使用Flash/AIR

是否有人在Flash/AIR上使用這些手勢(在Samsung S2上)並且是否使其工作?

謝謝!

Edualc

+0

有您在爲三星SII別的比較?以下是[Starling的良好基準](https://play.google.com/store/apps/details?id=air.com.dustunited.StarlingBenchmark&hl=zh-CN),您應該運行以查看Flash的sw渲染速度是否緩慢或硬件本身。 –

回答

1

手勢對每個聽衆都有非常高的開銷。如果您有多個手勢監聽器同時運行,則每個監聽器都將運行測試ON_ENTER_FRAME(看起來似乎是軼事),問題會變得更加複雜。如果舞臺上有多個對象都需要相同的手勢,我將偵聽器添加到舞臺,然後測試以查看Event.target是否是我的對象之一。這種做法還可以更好地重用代碼。

喜歡的東西:

Stage.addEventListener(TransformGestureEvent.GESTURE_SWIPE, swipped); 
Stage.mouseChildren = false; 
function swipped(e:TransformGestureEvent):void { 
    if(array_of_objects.indexOf(e.target)) { 
     Stage.removeChild(e.target); 
    } 
} 

這個工作最好的,如果你所有的墜落物是一個包裝容器內,所以你不必從舞臺的孩子,只是包裝的兒童刪除鼠標事件。

如果您不能訪問從(一類中)代碼的位置的階段,你可以使用DisplayObject.Stage.addEventListener...