查看: 1837|回复: 1
打印 上一主题 下一主题

FLASH内存优化13条

[复制链接]

435

主题

2

听众

6371

积分

高级设计师

Rank: 6Rank: 6

纳金币
6372
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

跳转到指定楼层
楼主
发表于 2012-8-29 16:43:32 |只看该作者 |倒序浏览
1. 使用合适的显示对象,对于非交互的简单形状用Shape对象,对于不需要时间轴的交互式对象用Sprite,对于使用时间轴的动画用MovieClip,他们的内存使用量分别是236,412,440,可见shape很省内存



2. Number原始存储内存占8个字节,int,uint,Boolean,String均占4个字节, 关于赋值后作占内存,取决值赋的值



3. 对象的重复利用, 在FOR循环内new对象要小心,每次new都会增大内存。



4. 通过重复使用 BitmapData 对象可以节省更多的内存,即不同的bitmap公用一个bitmapdata



5. 重复使用相同对象的时候,可以考虑下对象池的应用



6. 垃圾回收运行时会不断检测出处于非活动状态的对象,大型项目中此进程会占用大量CPU,所以尽量重使用对象,不用的对象设置为NULL



7. 内存释放方面,为了确保被垃圾回收,首先保证该对象没有其他引用,然后移除监听,在然后设置为NULL。关于bitmapdata, 先用dispose 在设置为null



8. 在 Flash Player 10.1 中,对所有bitmapdata实例采用同一版本的bitmapdata, 大大节省了内存, 当bitmapdata数据发生变化的时候,内存中会建立一个新的bitmapdata实例



9. 尽量避免使用滤镜,当对显示对象使用滤镜的时候,内存中将创建两个位图,每个位图的大小都与显示对象相同。一个是显示对象的栅格化版本,一个是用于滤镜的位图



10. 当修改滤镜的属性的时候,内存中两个位图都将更新创建新的位图,会消耗一些CPU,并且会占用大量内存。



11. Flash Player 10.1 在所有平台上引入了一种新的过滤行为。如果滤镜在 30 秒内没有进行修改,或者将其隐藏或置于屏幕之外,将释放未过滤的位图占用的内存。该方式成为动态位图卸载。



12. 使用滤镜时仍要谨慎小心;在对它们进行修改时,仍要求大量 CPU 或 GPU 处理。



13. 如果想要滤镜效果,最好用photoshop来做一个
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

10

主题

3

听众

760

积分

初级设计师

Rank: 3Rank: 3

纳金币
3
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

沙发
发表于 2012-8-31 08:52:13 |只看该作者
好贴 对新手很有帮助
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2025-3-13 15:06 , Processed in 0.059484 second(s), 31 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部