performance - Actionscript 3如何一次移动多个对象而没有延迟

标签 performance actionscript-3 flash actionscript movieclip

我有一个简单的问题。 我正在使用actionscript 3.0和Adobe flash professional cs6来制作游戏。我希望保持简单、干净且不延迟,但对于我的游戏,我需要许多(10-30)个影片剪辑在屏幕上同时以不同的方式移动。我想对 Event.ENTER_FRAME 事件使用基于时间的动画,但我不知道是否让每个单独的动画剪辑(因为它们都是可以执行此操作的父类(super class)固有的)跟踪其自己的时间并自行移动这样,或者让管理器类跟踪时间,然后以时间作为参数调用所有影片剪辑的函数。我想知道到底哪个更快。

最佳答案

为了补充上面链接的精彩答案,您应该仔细考虑和计划游戏的哪些组件需要最多的关注和优化。试图优化各个方面将变得极其繁琐且难以管理。除此之外,某些类型的优化不能同时发生(例如,您通常无法同时优化速度和内存消耗,因为改进其中一项会降低另一项的性能)。

例如 - 如果您知道您的游戏将在屏幕上发生很多事情(大量图形和效果),那么您应该认真考虑一个专注于渲染性能的库,例如 Starling ,它利用较新的 Stage3D API 极大地提高了绘图速度。

如果在另一个示例中,您的游戏需要在对象之间进行大量测量并实现光线转换和寻路等功能,那么您应该了解如何为您的游戏构建一个可以最有效地运行这些算法的网格。

至于清洁度,特别是当提到 Event.ENTER_FRAME 时,您应该只在游戏的主类(或类似的处理程序类)中为此事件实现一个处理程序。您的实际游戏对象应列在此类的数组中,并且 EnterFrame 处理程序应迭代该数组并调用每个对象上的函数,即 update() 或类似的函数。

关于performance - Actionscript 3如何一次移动多个对象而没有延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18433063/

相关文章:

c++ - Eigen 行加/减性能

java - Prime 速度测试仪

flash - 如何将 netstream.appendBytes() 用于 http 动态流?

actionscript-3 - FULL_SCREEN_INTERACTIVE 模式 : the "Allow" button click is passed to the application

javascript - 为什么 YouTube JavaScript Player API 打开与我的代码中的 URL 不同的 URL,并且只播放播放列表的第一个视频?

apache-flex - 如何过滤闪光灯(10.1)中来自麦克风的声音?

android - 有没有办法限制服务分配的资源?

c# - Entity Framework 初始化很慢——我该怎么做才能更快地引导它?

flash - 我可以在构造函数中使用apply()来传递任意数量的参数

actionscript-3 - 在 swc-library (actionscript3) 中停止跟踪