客户要求在Flash里加入扫光、海浪、破碎等效果,以前只是听说AE能做,便恶补了AE才做出来。结论:这年头什么都要会些 -_-!
睡前写个小东东:
在使用Image组件时发现没有平滑效果的设置和方法(有可能是自己太笨,找不到),就自己写了个简单的,对于普通的小应用应该够用了。
效果:
SmoothImage.swf
加载用的图片:
Apple_04.png
新建文件:SmoothImageTest.mxml
[code]
xmlns:local="*"
height="128"
width="256">
width="128" height="128" x="0" y="0"
verticalAlign="middle" horizontalAlign="center" />
width="128" height="128" x="128" y="0"
verticalAlign="middle" horizontalAlign="center"/>
[/code]
其中的SmoothImage就是下面要新建的类文件:
SmoothImage.as
[code]
package {
import mx.controls.Image;
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.Loader;
import flash.events.Event;
import flash.net.URLRequest;
public class SmoothImage extends Image {
private var sourceURL:String;
private var pictLdr:Loader;
public function SmoothImage():void{
super();
pictLdr = new Loader();
pictLdr.contentLoaderInfo.addEventListener(Event.INIT, loaderInit);
}
private function startLoadImg():void{
pictLdr.load(new URLRequest(sourceURL));
}
private function loaderInit(event:Event):void{
var myDataBitmap:BitmapData = new BitmapData(pictLdr.width,pictLdr.height,true, 0x00ffffff);
myDataBitmap.draw(pictLdr);
var myBitmap:Bitmap = new Bitmap(myDataBitmap,"auto",true);
source = myBitmap;
}
public function set ImgURL(_url:String):void{
sourceURL = _url;
startLoadImg();
}
public function get ImgURL():String{
return sourceURL;
}
}
}
[/code]
原理非常简单,就是用Loader加载图片,然后绘制出一个Bitmap来做为Image组件的source.
Bitmap使用平滑打开,OK了
如有达人知道更好的方法,一定要告诉我,先谢谢啦
PS. 这几天的大事很多哈。
FLEX3 BETA1出世,FLASH PLAYER 升级,AIR(原APOLLO)BETA现身。
嗯,我们经理也开始对FLEX感兴趣了…

Comments