AS3 - 为什么手势如此反应迟钝使用Flash/AIR

问题描述:

我已经使用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渲染速度是否缓慢或硬件本身。 –

手势对每个听众都有非常高的开销。如果您有多个手势监听器同时运行,则每个监听器都将运行测试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...