Adobe Air & Adobe Flex & ActionScript & Mobile Dev & HTML5 & RIA & User Experience
原文:在 Flash 作點陣圖九宮格縮放技巧 因为Blogspot无法访问,所以转载原文进来,国内的朋友可以更容易看到。 顺便感谢Ticore的帮忙。 Step1: 选择位图转化成MC,并勾选Scale9设定 Step2: 将位图打散成为向量填色区块(快捷键Ctrl+B) Step3: 沿着 Scale 9 Grid 划线,将位图填色区块切割开 Step4: 最后,把9个填色区块包成群组(快捷键Ctrl+G),删除切割用的线条 这样再测试转化好的MC,就可以使用 Scale 9 进行缩放了。
Class ‘Close’ 是嵌入到common.Fla的close.png图片链接 若Flex Builder version 3.5使用 [Embed(source="assets/common.fla", symbol="Close")] private var closeCls:Class; <mx:Button skin="{closeCls}"> Flex Builder 报如下警告: Warning: Class ‘Close’ does not extend the ‘DefineBits’ asset base class ‘flash.display.Bitmap’. 运行SWF报错。 若直接Embed图片 [Embed(source="assets/close.png")] private var closeCls:Class; <mx:Button skin="{closeCls}"> 运行SWF不会报错。 若Flex builder version 4.0 不会报错。 又因为某些PNG图片是否Flex builder version 3.5不会报错,与美术讨论测试得出一下结论: Flex version 3.5, PNG图片使用swf Embed嵌入,若PNG图片为渐变图形,会报如上警告和运行错误。 解决方法:可以PNG图片转化为MC使用之,或采用Flex [...]
最近为公司内没有接触过Flex的“新人”再次培训了Adobe Flex,这次总比2006年开始介绍Adobe Flex是什么东西容易得多,网上也有了很多很好的总结,因此我也详细整理了一份介绍给大家。 很多人都已经有了不错的Flash基础,因此把重点放在了Adobe Flex的LifeCycle,共分为 主程序生命周期(Adobe Flex Application LifeCycle) 组件生命周期(Adobe Flex UIComponent LifeCycle) 详解生命周期中的失效机制(LifeCycle Invalidation Mechanism)
以下结论由寂寞火山得出,我只是借花献佛 —————————————————————- 通常我们存取数据有如下几种方式:Array, Object, 自定义类, 比较特殊的还有 Point, Rectangle 等。 效率依次为(后面的数字是100万次存取运算平均所需时间): 自定义类public属性 135 Point 140 Rectangle(x等属性) 140 Array 270 Object 500 自定义动态类动态属性 550 Rectangle(left等属性) 700 自定义类getter/setter 1000 自定义类Function 1000 出乎意料,最快的是自定类的public属性,速度是Array的两倍Object的四倍getter/setter的八倍——很整的倍数关系。另外存取坐标要用Point和Rectangle,比Array快的多。Object还是少用吧,多用自定义类。 另外自定义密封类(sealed,默认)和自定义动态类(dynamic)的public属性、getter/setter速度几乎一样,而动态类动态添加的属性和Object相若。
还记得Flex/Flash的程式优化里面有指明flash自带的Math类本身就是AS实现的,所以处理速度很慢。 比如 abs(value:Number) 可以用 value < 0 ? -value : value 这样来代替。 也正是因为这样,我就想自己写个Math类MathUtil来取代Math里面的如abs(value:Number)这样的方法。 MathUtil.as public static function abs(value:Number):Number { return value < 0 ? -value : value; } 但是测试下来发现自己的MathUtil类比原来的Math类速度慢了一倍之多,难道Math.abs在fp10里优化了? 结果如果直接采用value < 0 ? -value : value来取代MathUtil.abs(value:Number)的代码,速度就比Math.abs(value:Number)快得多。 因此结论得出是function的关系,如果code代码执行重新套用了一层function,那么运行的速度结果是慢得多。 所以这也说明在对性能及其严格的情况下,写代码的时候也尽量降低代码的层次嵌套关系。