关于bitmapData,滤镜等一些性能测试

本文探讨了Flash应用中提升性能的方法,包括不同滚动技术的效果对比、BitmapData的alpha属性对性能的影响、滤镜使用的最佳实践、TextField的文字更新及缓存策略等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

注:> 指性能更好

1.地图滚动 之 纯copyPixes  和  BitmapData.scroll + copyPixes

结论: copyPixes > scroll + copyPixes   耗时差距1/15 - 1/20  相差不大


2.地图滚动 之  BitmapData alpha 对性能影响

结论:无alpha > 有alpha  差距  30% 以上   机器越差 性能差距越大

注1:将无alpha的位图  放置于sprite  上  对sprite  操作相当于渲染有无alpha的位图


3.unlock 测试

unlock(Rectangle)  解锁区域  比  unlock 全部耗时 稍少

bitmapData.unlock()    即使位图没有任何更新也会渲染全部


4.displayObject.filters = []  即使没有使用任何滤镜  任何变化  此代码也会渲染对象

顾 需要  .filters = null  不会渲染


5.关于bitmap.visible = false

位图设置不可见以后不会渲染   即使置换bitmapData也不会


6.关于 ColorTransform  滤镜  置换的测试

类似于

private var _ct:ColorTransform = new ColorTransform();

dis.transform.colorTransform = _ct

每帧设置Transfor 或滤镜   即使为同一对象  也会进行再渲染 


7.关于bitmap  + 滤镜 移动  消耗测试

对bitmap 一开始 加滤镜   每帧移动  则消耗  只有移动消耗  无滤镜消耗

如果每帧都置换bitmapData 则消耗 有  滤镜消耗


8.关于scrollRect测试

如果对对象使用滤镜    再每帧使用scrollRect  则每帧都有滤镜消耗

如果只移动x y  则没有滤镜消耗


9.关于 removeChild  addChild  + 滤镜测试

对象一开始使用滤镜   不停  removeChild addChild  则消耗有滤镜消耗



10.TextField即使没有被addChild 或 visible = false  文字改变也会因为更新文本布局消耗少量时间
约8字符 0.2ms   文字较多并由滤镜的情况 可以达到 1ms

11.关于 TextField cacheAsBitmap

文本在加了滤镜以后自动 cacheAsBitmap 以位图方式渲染,即使TextField 移动也依旧为位图  性能消耗很小
如果TextField 未加滤镜 且cacheAsBitmap = false 则文字移动消耗较大性能


持续更新


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值