2

在 Android 上的 AS3 中,从性能的角度来看,将鼠标事件侦听器附加到单个精灵而不是舞台上是否很糟糕?

我正在使用 Flash Builder 中的 AS3 为 Android 手机编写应用程序。该应用程序具有多个响应用户触摸的屏幕。屏幕按层次结构排列并显示列表数据,因此当您单击列表中的项目时,您会看到一个带有新子列表的新屏幕。

我一直在使用事件侦听器来检测鼠标/触摸输入,并且根据我读到的内容表明,如果您将正在收听的对象数量保持在最低限度,性能会好得多我已将鼠标侦听器从每个屏幕附加到舞台对象。

这一切都很好,但我发现当我在屏幕之间移动时(并且它们被弹出或推送到显示堆栈上),我必须跟踪大量添加和删除舞台对象的监听器。如果我不这样做,那么层次结构比当前屏幕更高的窗口会继续接收鼠标事件。

如果我在每个窗口中使用附加到精灵的侦听器,那么当窗口从显示器中删除时,即使它保存在内存中(准备在子窗口关闭时弹出),它也不会收到任何鼠标事件...... .

使用我的 HTC 手机进行测试时,直接在精灵上使用监听器似乎不会影响性能,但我显然不知道在其他手机上会是什么样子。有没有人有任何经验或对最佳方法的看法?

4

1 回答 1

1

我建议在特定的精灵上使用监听器,因为它更容易编码和维护,坐标转换可能会因为不同的屏幕/精灵大小而变得很麻烦,并且删除/添加监听器在添加时可能不容易维护更多画面...

至于性能,我不相信监听器会产生任何影响,它只是一个在精灵被点击时被调用的函数,如果你没有设置监听器,操作系统无论如何都会注册点击并将其发送到较低级别的视图,直到它最终找到事件的侦听器,或者将其丢弃。

于 2011-08-16T16:50:00.137 回答