原来flash player对图片的解码不是异步的,AIR2.6后就异步了
来源:互联网 发布:mac不能联网怎么重装 编辑:程序博客网 时间:2024/04/29 03:06
用过 Loader 对象的人都知道,加载图片时,无论是使用 load() 方法还是 loadBytes() 方法,都是异步的。从开始加载到显示在舞台上这一过程,分别有两个动作:图片加载和图片解码。我一直都以为,从加载到解码完毕都是异步进行。但看了这篇文章后(http://www.bytearray.org/?p=2931),我才知道,只有加载的动作是异步的,加载完毕后的图片解码是同步的。即:加载动作是另开线程处理的,但加载完毕后的解码操作是交给主线程处理的。那就是说,加载大图片的话,会很糟糕。
Adobe AIR 2.6 版本里新增了API:LoaderContext.imageDecodingPolicy 属性。用于指定图片的解码操作是同步的还是异步的,即:是在主线程里解码,还是另开线程解码。
添加这个功能后,实在让人叫好。但,我觉得还不够完美。图片加载完毕后,flash player 就自动对图片进行解码。如果把这两个过程分开,让开发者决定什么时候进行解码,那才让人连声叫好。为什么要这样做呢?因为:图片解码后更占用内存!有时候,我们只想把图片预加载进来,但并不会马上把图片展示出来。举个例子:一张 4KB 的图片,以二进制的形式加载到flash里,仅占用内存为 4KB 。但在解码后,可能占用了 10KB 的内存(这个跟图片压缩率有关)。为做到仅使用时才对图片进行解码的效果(这样能有效利用内存资源),目前的做法是先使用 URLLoader 把图片以二进制的形式加载进来,直到需要展示图片时,才用 Loader.loadBytes() 加载。
- 原来flash player对图片的解码不是异步的,AIR2.6后就异步了
- 原来flash player对图片的解码不是异步的,AIR2.6后就异步了
- Flash Player 11异步解码Bitmap
- Flash Player 11异步解码Bitmap
- Flash Player 在 debug的时候过了45秒就崩溃了
- 图片的异步加载
- 异步的图片加载
- 图片的异步加载
- 图片的异步加载
- 图片的异步加载
- 图片的异步加载
- Flash Player安装时提示“正尝试安装的Adobe Flash Player不是最新版本”
- 安装Flash Player 调试版本简单方式(安装的Adobe Flash Player不是调试器)
- glib中的signal不是异步的,使用g_idle_add实现异步
- Adobe Flash Player不是最新版本的问题
- Adobe Flash Player不是最新版本的解决方法
- mpeg2Peter解码后的图片文件写在了哪里?
- toggle函数不是点击了才调用么?怎么我的初始状态只是一瞬间就被替代了,而且还替换后的样式也不太对
- 指针算术运算
- 为什么要用IOC
- Python多线程编程
- java基础之对象的clone(浅拷贝)
- 如何删除ubuntu中多余的内核镜像
- 原来flash player对图片的解码不是异步的,AIR2.6后就异步了
- fedora 13 安装与配置(一)----准备
- Python字符串处理函数
- Python中对列表list求交集
- AS3还可以通过CDATA标签声明多行字符串
- Python多进程
- Python标准模块logging
- Hibernate框架介绍
- 字符串操作函数