Flash Player 11引入了一个全新的功能是异步解码位图的功能,这个功能对某些类型的Flash应用会很有效,尤其是需要加载大分辨率的位图的相册或游戏会有显著效果。
这个功能在Flash Player 11里的实现非常简单,需要使用flash.system.ImageDecodingPolicy这个类。这个类的使用,是通过flash.system.LoaderContext类中制定imageDecodingPolicy属性的值。这个属性的两个值描述了不同的策略(来自官方Help):
ON_DEMAND:在需要时同步解码图像。此设置对较小的图像非常有用。
ON_LOAD:在图像加载后立即异步解码图像。此设置对较大的图像非常有用。
由于默认值是ON_DEMAND,所以需要你针对Flash Player 11,手动开启ON_LOAD以用来激活异步解码。异步解码可以防止出现加载大分辨率位图时同步解码造成的播放器假死或性能表现不佳的状况。
代码只需要在AS3里添加这几行:
import flash.system.ImageDecodingPolicy;
...
var loaderContext:LoaderContext=new LoaderContext();
loaderContext.imageDecodingPolicy=ImageDecodingPolicy.ON_LOAD;
...
loader.load(new URLRequest(url),loaderContext);
...