flex绘制性能优化
??????? 在flex开发过程中,其实大部分的性能损耗和内存占用都是在舞台的元素中,包括元素重绘所占用的cpu等等,之前在flash开发时,一般的shape,sprite,movieclip等对象使用的比较多,而且他们占用内存更少,你可以通过函数:getSize(object) 来测试一下他们的大小。进入flex开发后,由于场景中的可视化元素都要继承IVistualElement这个接口才能进行展示,所以之前的flash素材是无法直接加入到flex的舞台中。而uicomponent是公认的最基础的原件,于是很多人都把素材放入到它里面进行包装后在舞台中进行展示,经测试uicomponent的内存占用也是很高。 ??????? 其实在flex中还有一个元素叫做:SpriteVisualElement ,他也继承了IVistualElement,而且根据adobe的手册中描述:SpriteVisualElement 类是 IVisualElement 接口的基于占用内存较少的 Sprite 的实现。经过测试发现比uicomponent原件节省近一半的内存占用,完全可以把flash设计好的movieclip和一些元素放入到它里面包装后加入到flex舞台上面。 ????????但是注意,由于SpriteVisualElement轻便,所以他没有关于layout等设置,他仅仅能对flash级别的元素对象进行包装,而不能用于flex元素的包装,比如把flex元素的label放入其中,你会发现什么都没有了。其实flex元素直接可以在舞台中进行添加也没有必要再嵌套一层,我们这里讨论的主要就是flash级别的元素如何高速的在flex中进行交互的方案,所以SpriteVisualElement应该是首选! ?????? 如果你之前加载flash元素是用uicomponent,或者直接用swfloader,image等那么你可以尝试一下SpriteVisualElement,看看的flex项目是否占用内存更少,而且速度更快了。 ?????? 随便说一句,flex和flash比起来还真是臃肿很多。(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |