发布成fp8++的swf中利用bitmapData平滑显示图片

其实在flash7和更早的版本只要用_quality = “HIGH”或”BEST”就可以控制图片平滑显示了,不过这样有个缺点,所有场景和元素都会平滑,严重消耗资源。
在flash8里adobe不让通过调整_quality来平滑图片了,可以利用bitmapData来替换。
在图片的MovieClipLoader加载完毕的时候:

  1. import flash.display.BitmapData;
  2. function __onLoadInit(target:MovieClip):Void {
  3.     var bd:BitmapData = new flash.display.BitmapData(target._width, target._height);
  4.     bd.draw(target);
  5.     target.attachBitmap(bd, 1, "auto", true);
  6. }

然后,这个target就被平滑的bitmapData替换掉了。
不过adobe似乎忘记了他对bitmapData的安全限制,fp9以下的客户端根本无法跨域draw到bitmapData,即使是fp9 plus,也要去loadPolicyFile,所以当图片分布在很多台服务器上的时候,根本没有什么好的办法解决这个问题,总不至于每打开一个app就遍历去加载几十个crossdomain.xml吧。
你干脆就不要让MovieClipLoader加载他出来,这样就没什么安全性问题了,这个世界也清净了,既然能加载出来,又不让draw,自相矛盾的啊,倒不如用回7算了。

One Response to “发布成fp8++的swf中利用bitmapData平滑显示图片”

  1. 搜易 says:

    我好像来过你的博客了。不过既然来了。给你留点东西吧 (*^__^*) 嘻嘻……

Leave a Reply