实验练习(3) flash player 11.3 的新功能
2012-04-08 13:35
323 查看
今天初步体现一个flash player 11.3 的新增的Api 功能,暂时使用一个新API作为这次的测试。
我们知道PNG 的图片都是偏大的,在游戏里面使用若果PNG图片太大对于加载来讲是一种恶魔,不但降低用户的体现,而且消耗了带宽。在这次实验,使用BitmapData 的encode 方法 进行编码保存,这样的小功能 可以尝试将偏大PNg编码保存jpegxr 的编码,图片的质量会变得比较小。
这种图尽量是不规则的PNG图片作为实验,周围保留比较多透明,在测试当中,发现压缩的空间比一张完整四四方方的PNG图片会压缩得明显一下。
在使用这种特性的时候,先导入JPEGXREncoderOptions 这个类,这个是设置jpegxr编码属性,第一个参数,填写数值越高 压缩比例越厉害,质量会变得更加差,但是文件会变得更加小。
(参考:)http://labsdownload.adobe.com/pub/labs/flashplatformruntimes/shared/air3-3_flashplayer11-3_p1_releasenotes.pdf
encode(rect:Rectangle,EncoderOptions :Object, byteArray: ByteArray = null):
ByteArray;
JPEGXREncoderOptions
(quantization:uint=20,colorSpace:String="auto", trimFlexBits:uint=0)
保存之后的原本的PNG位图296K,保存之后变成了45K,质量受损程度没想象那么差,还是可以接受的。尝试对 JPEGXREncoderOptions(45) 对这个类的参数进行调整可以调试出不同的质量的效果。而保存之后的图片,若果想加载到flash 里面使用则需要使用flash player11版本则可以加载并呈现出内容。
下面尝试不同的参数效果。
下面是根据不同压缩比进行设置对比。可以看出 数值越高质量越差
这次更新,特性比较多,还有其他比较有意思的API,这就不一一测试了,有一些是针对IOs进行优化的,一些是音频方面。同样后续Air 版本 同样支持了MAc 模拟器,支持UsB的debug 测试,嘿嘿暂时用不上,对一些人来讲会用得上,但是最关心的性能优化上,还没提及到。在发展路线图来讲,第2季度,会推出新的版本的版本,也会对版本一些地方进行优化。
在flash player 12 版本的到来之时,我们还要等待效率上达到另外一个飞跃的版本,而目前版本还没用得上。暂时可以尝试一下,而我相信好的程序关键的因素是人,一个好的程序员是会克服一些因素提升flash 的性能。
无论怎样说也好,我们更加期待的硬件上的提升。下一代的版本会让人感受到adobe 的真正诚意。
我们知道PNG 的图片都是偏大的,在游戏里面使用若果PNG图片太大对于加载来讲是一种恶魔,不但降低用户的体现,而且消耗了带宽。在这次实验,使用BitmapData 的encode 方法 进行编码保存,这样的小功能 可以尝试将偏大PNg编码保存jpegxr 的编码,图片的质量会变得比较小。
这种图尽量是不规则的PNG图片作为实验,周围保留比较多透明,在测试当中,发现压缩的空间比一张完整四四方方的PNG图片会压缩得明显一下。
在使用这种特性的时候,先导入JPEGXREncoderOptions 这个类,这个是设置jpegxr编码属性,第一个参数,填写数值越高 压缩比例越厉害,质量会变得更加差,但是文件会变得更加小。
(参考:)http://labsdownload.adobe.com/pub/labs/flashplatformruntimes/shared/air3-3_flashplayer11-3_p1_releasenotes.pdf
encode(rect:Rectangle,EncoderOptions :Object, byteArray: ByteArray = null):
ByteArray;
JPEGXREncoderOptions
(quantization:uint=20,colorSpace:String="auto", trimFlexBits:uint=0)
package { import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.JPEGEncoderOptions; import flash.display.JPEGXREncoderOptions; import flash.display.Loader; import flash.display.Sprite; import flash.display.StageQuality; import flash.events.Event; import flash.geom.Rectangle; import flash.net.FileReference; import flash.net.URLRequest; import flash.utils.ByteArray; public class flash13 extends Sprite { public function flash13() { var loader:Loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onLoadAll); loader.load(new URLRequest("2.png")); function onLoadAll(e:Event):void { var bitmap:Bitmap=e.currentTarget.content; var bitmapdata:BitmapData=new BitmapData(bitmap.width,bitmap.height,true,0x00ff00); bitmapdata.draw(bitmap); var byteArray:ByteArray = new ByteArray(); bitmapdata.encode(bitmapdata.rect, new JPEGXREncoderOptions(45), byteArray); var file:FileReference=new FileReference(); file.save(byteArray,"testjxr.jpg"); } } } }
保存之后的原本的PNG位图296K,保存之后变成了45K,质量受损程度没想象那么差,还是可以接受的。尝试对 JPEGXREncoderOptions(45) 对这个类的参数进行调整可以调试出不同的质量的效果。而保存之后的图片,若果想加载到flash 里面使用则需要使用flash player11版本则可以加载并呈现出内容。
下面尝试不同的参数效果。
下面是根据不同压缩比进行设置对比。可以看出 数值越高质量越差
package { import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.JPEGEncoderOptions; import flash.display.JPEGXREncoderOptions; import flash.display.PNGEncoderOptions; import flash.display.Loader; import flash.display.Sprite; import flash.display.StageQuality; import flash.events.Event; import flash.events.MouseEvent; import flash.geom.Rectangle; import flash.net.FileReference; import flash.net.URLRequest; import flash.utils.ByteArray; [SWF( backgroundColor='0x000000',width='1000' ,height='600')] public class flash13 extends Sprite { private var loader2:Loader; public function flash13() { var loader:Loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onLoadAll); loader.load(new URLRequest("3.jpg")); function onLoadAll(e:Event):void { var bitmap:Bitmap=e.currentTarget.content; for(var i:int=0;i<10;i++) { var bitmapdata:BitmapData=new BitmapData(bitmap.width,bitmap.height,true,0x00ff00); bitmapdata.draw(bitmap); var byteArray:ByteArray = new ByteArray(); bitmapdata.encode(bitmapdata.rect, new JPEGXREncoderOptions(i*10), byteArray); loader2=new Loader(); loader2.loadBytes(byteArray); addChild(loader2); loader2.x=(i%5)*200; loader2.y=int(i/5)*280; } } } } }
这次更新,特性比较多,还有其他比较有意思的API,这就不一一测试了,有一些是针对IOs进行优化的,一些是音频方面。同样后续Air 版本 同样支持了MAc 模拟器,支持UsB的debug 测试,嘿嘿暂时用不上,对一些人来讲会用得上,但是最关心的性能优化上,还没提及到。在发展路线图来讲,第2季度,会推出新的版本的版本,也会对版本一些地方进行优化。
在flash player 12 版本的到来之时,我们还要等待效率上达到另外一个飞跃的版本,而目前版本还没用得上。暂时可以尝试一下,而我相信好的程序关键的因素是人,一个好的程序员是会克服一些因素提升flash 的性能。
无论怎样说也好,我们更加期待的硬件上的提升。下一代的版本会让人感受到adobe 的真正诚意。
相关文章推荐
- C++ Primer 第5版--练习11.3
- 小宝的实验7-综合练习
- 实验 7 综合练习 第二题
- 实验教学内容(16课时)实验2选择语句练习
- 3.2 实验练习
- Java基础学习对象、封装第二章实验练习三
- C语言实验——Hello World!(printf练习)
- 【原创】DE2 实验练习解答—lab 2:数字和显示(digital Logic)(DE2)
- JAVA--第六周实验--任务1--Java的对象封装编程练习
- 附加实验2 OpenGL变换综合练习
- JAVA--第六周实验--任务1--Java的对象封装编程练习
- python 实验6 字符串练习(二)
- 实验7 综合练习
- 实验 13 综合练习三
- html5新功能练习
- C语言实验——Hello World!(printf练习)
- hp uft 实验练习
- 170407 汇编-综合练习 实验7
- 如何正确使用flash player的新功能
- 11.3作业练习