通过MovieClipLoader方法加载允许平滑(Smoothing)图片

在使用AS2的MovieClipLoader加载图片时,如果对加载的图片进行缩放或旋转时,图片会有明显的锯齿,对于库里的图片,只要把允许平滑(Smoothing)的勾选上,既可以消除图片的锯齿,对比勾选或未勾选平滑效果的图片,在图片没有缩放或旋转状态时,未勾选的图片会比较清晰.如果是对于加载的方式得到的图片,在使用AS2方法去加载图片时,是没法直接对加载的图片对象进行平滑处理的,但通过AS3的方法加载图片,加载成功的图片会是Bitmap对象,Bitmap对象有smoothing的属性,直接设为true,既可对图片进行平滑处理.

所以,我现改写MovieClipLoader类,通过Bitmapdata类,重绘图片,再把图片attachBitmap到加载的mc上,这样就可以控制加载的图片是否允许平滑.对于MovieClipLoader的声明与方法都是保持了原样,除了loadClip()方法,我增加了第三个参数,默认为false,如果定义为true,则对加载的对象,不管是swf还是jpg,png,都会先转为Bitmapdata类,再attachBitmap到mc.
以下为例子代码:

var mcl:MovieClipLoader	=	new MovieClipLoader();

function onLoadInit(mc){
	mc._rotation	=	30;
}

//DON'T try override MovieClipLoader.onLoadInit method, when load a smoothing image.
//mcl['onLoadInit']=onLoadInit;

mcl.addListener(this);
//the third params "true" means loading a image with smoothing.
mcl.loadClip("jiaose_3_rob_12.png", loader_mc, true);


function onMouseDown(){
	loader_mc._rotation	+= 10;
}

 

下载mxp,下载sample.zip

 


已发布

分类

来自

评论

《 “通过MovieClipLoader方法加载允许平滑(Smoothing)图片” 》 有 3 条评论

  1. 小西 的头像
    小西

    非常感谢分享,相当简单的解决困扰我许久的问题!

  2. 小西 的头像
    小西

    刚刚出现另一个问题,我原先没有去锯齿前,加在mc的动作是正常的,比如单击,
    现在去锯齿后,mc的动作也都全部失效了,这要怎么办?
    我是把mc的动作加在onLoadInit里面的,mc.onRollOver事件,
    不去锯齿就正常,去锯齿就动作没有效果了?

    1. whohoo 的头像

      因为我把MovieClipLoader的onLoadInit方法给覆盖掉了,如果isSmoothing为true,则onLoadInit方法不再起作用,所以你需用其它方法来检测图片是否加载完成?比如onProgress或onEnterFrame方法

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注