在项目开发的过程中总结了一下starling的性能优化方案:
1. 不要频繁的读取显示对象的宽高:调用宽高属性时会调用显示对象的getBounds()方法,该方法会遍历该对象的所有子对象,重新计算宽高。在频繁使用宽高属性时,如没有特殊需要,最好把宽高保存到变量中,使用变量保存的值替代直接读取宽高属性。
2. 扁平化的Sprites:starling在每一帧都会遍历所有对象检查它们的状态,上传它们的数据到GPU进行重新渲染,调用Sprite的flatten()方法后,GUP便不会对该对象进行重新上传渲染,当你需要更新这个显示对象时,可以调用它的unflatten()方法。
3. QuadBatch:QuadBatch类是一个扁平化的容器,你每在容器上add一个对象时,它都会派发一个"ADDED"和"ADDED_TO_STAGE"事件,当你有很多对象时,也是一个不小的开销,特别时当你使用的纹理都是来自同一个纹理图集时QuadBatch会更加高效,它只能添加Image, Quad, 或 QuadBatch类的实例。
4. 减少事件派发:starling的显示对象在add在舞台上的时候都会派发一个"ADDED"和"ADDED_TO_STAGE"事件,移除的时候也是会派发"REMOVEED"和" REMOVEED _TO_STAGE"事件,很多时候这些事件对我们都没有意义,我们可以修改starling的显示对象或者自定义一个显示对象,重写它的addChild方法,将事件派发去掉,减少不必要的开销。
5. 清理彻底:在销毁一个对象时,保证将对象及子对象销毁彻底,并把事件移除干净,starling中频繁创建对象没有销毁就会造成资源超过上限的错误,造成程序崩溃。
6. 混合模式:如果有完全不透明的矩形纹理,我们可以让GPU禁用那些纹理混合。这对于大背景图像特别有用。设置object.blendMode = BlendMode.NONE;
7. touchEnable不可点击:给不需要接受事件的对象设置touchEnable= false;减少不必要的时间监听和派发。
8. 使用位图字体:使用位图字体替代系统字体,性能将成倍提高。
9. 纹理图集:starling采用了画家算法来处理显示列表,如果从一个单一的图集加载所有这些纹理,Starling就可以在一次调用中完成所有的绘制。starling中支持最大2048*2048大小的纹理图集(在帖子刚刚写完的时候flash11.8发布了,最新支持最大纹理为4096*4096)。
10. 不可见放弃渲染:当显示对象不在屏幕内或者不在可视范围内,我们可以将其移除或者设置visible属性为false,这样可以极大的减少GPU渲染的压力,提高性能。
11. Image替代Button:在不必要的情况下,尽量使用Image不要使用Button,前者在渲染时的速度和开销都要优于后者。
12. 基本的AS3性能优化:使用for替代for each;不要在for循环中频繁创建对象;将数组的length属性赋值到变量上使用,而不是频繁调用等AS3的良好编码习惯。
13. 使用ATF纹理:这个格式非常强大,可以用命令行把一个PNG文件转换为ATF文件(包含针对不同设备的文件类型Android (ETC1), iOS(PVRTC) , Windows and MacOS (DXT))。Flash Player和AIR会自动根据运行平台选择合适的格式,ATF有着更快的渲染速度、更小的内存占用、更快的上传速度和更小的应用体积等优点,强力推荐使用。
(注:红色为重要优化方案)
相关推荐
8. **性能优化**:监控和调整内存使用、帧率,确保游戏在各种设备上都能流畅运行。 五、总结 基于Starling的游戏开发提供了一个强大的工具集,让Flash开发者能够在2D游戏领域中大展拳脚。无论你是想创建像“Hungry...
总结起来,"Starling版消灭星星"利用了Starling框架的强大性能和易用性,结合源码,我们可以深入学习到如何使用AS3进行游戏开发,包括图形渲染、事件处理、资源管理、游戏逻辑以及音频处理等多个方面,对于想要从事...
在Starling框架下,游戏的逻辑处理、碰撞检测、动画效果等都可以得到优化。Starling支持矢量图形,这意味着游戏中的飞机、子弹、敌人等元素可以实现高质量的缩放,同时保持流畅的帧率。 “Starling”是基于AS3的跨...
这些组件包括按钮、列表、下拉菜单、滑块、进度条、输入框等,它们都是经过优化,可以在Starling环境中高效运行。每个组件都设计得可定制化程度很高,允许开发者通过主题、样式表或代码来调整外观和行为,以满足特定...
通过分析这些文件,开发者可以学习到如何初始化Starling舞台,创建和管理显示对象,处理触摸事件,以及优化渲染性能等关键技巧。 总结来说,"PrimaryFeather-Starling-Framework-v1.2-0-g2a42a8e"项目是AS3开发者...
Feather的组件包括按钮、文本输入框、列表视图等,这些组件都经过优化,可以在Starling的2D渲染管线中流畅运行。开发者可以使用Feather快速构建出专业级别的界面,而不必从头开始设计每一个元素。 接下来是...
总结,开发基于Starling的塔防类小游戏,需要理解并熟练运用Starling提供的图形API,结合MVC设计模式,以及合理的物理系统和碰撞检测,构建出丰富的游戏世界。通过良好的代码组织和性能优化,我们可以为玩家带来流畅...
《Flex技术实现动态图书翻页效果详解》...结合3D变换、阴影效果以及动画控制,不仅可以实现逼真的翻页效果,还能通过优化代码和性能调整,使得用户体验更加流畅。这不仅是技术上的挑战,也是艺术与技术完美融合的体现。
例如,通过Nape处理游戏对象的物理行为,Starling负责图像的高效显示,而Signals则优化了组件间的通信。这种组合使得“flat2d”在ActionScript平台上成为一个理想的选择,尤其适合制作高性能的2D动作、冒险和平台类...
因此,在实现径向模糊时,需要考虑性能优化,例如限制迭代次数、使用适当的采样策略、或根据设备性能动态调整模糊程度。 总结,通过Stage3D,开发者能够利用GPU的强大计算能力,实现高效的径向模糊效果,从而提升...
性能优化是任何Web应用的关键。通过request-log-analyzer,薄荷网能够深入分析应用性能,找出请求量最大、平均耗时最长以及渲染和数据库操作最耗时的请求,从而针对性地进行优化。他们还采取了异步处理策略,如使用...
总结,FlashDevelop 3 Beta 8是ActionScript 3.0开发者的得力助手,其强大的功能、高效的性能以及友好的社区支持,使得它在众多IDE中脱颖而出。无论你是初学者还是经验丰富的开发者,都能在FlashDevelop中找到适合...