Flash:动态文本域会产生极端延迟 - 为什么?

时间:2012-09-09 13:28:31

标签: actionscript-3 flash air

我正在AIR中创建一个IOS游戏,你必须用它上面的某些数字射击鸟类。一只新的鸟每5秒左右产生一次,穿过屏幕并在离开后被移除。我使用TweenMax通过贝塞尔曲线在屏幕上补间。游戏是用GPU渲染的。

问题在于:当我向“鸟”MC添加动态文本字段时(因此我可以在鸟上放置一个数字),这会使游戏无法播放:在20秒左右后(屏幕上可能有4只鸟) ,游戏开始口吃,最终完全停止。这是在iPad 1上。

我发现了什么:

  • 如果我从“鸟”MC中移除文本字段,游戏运行正常。
  • 如果我把它放回去,即使是代码永远不会改变的静态数字,它也会再次滞后 - 所以不是插入问题的数字的代码。
  • 如果我将文本字段放入,但保留为空并且从不添加文本,则运行正常,因此文本字段中存在文本就是问题。

我不知道问题是什么。我已经尝试将textfield创建为movieclip的一部分并在运行时动态创建它 - 没有区别。除了数字,我没有嵌入任何东西。我尝试过使用反别名,没有反别名,设备字体 - 没有区别。

我不知道为什么4-5个动态文本字段的存在/补间会产生看起来像是一个巨大的内存泄漏。有谁听说过这个?

1 个答案:

答案 0 :(得分:2)

在GPU模式下渲染矢量非常慢,特别是文本(薄的尖锐形状也不会出现问题)。我的建议是render the textfield as a bitmap