最近看了一些Bitmap以及滤镜相关的源文件,看不懂 脑子不够用!看了一些简单的源文件,尝试使用BitmapData.draw方法,参照着做了实例以下是代码
效果演示
importflash.display.BitmapData;//导入BitmapData类
varmybmp:BitmapData=newBitmapData(Stage.width,Stage.height,false,0);//建立一个和场景一样大的位图对象
this.attachBitmap(mybmp,1);//将位图图像附加到主场景上
//----效果部分建立一个mymc内部建立一个line绘制一条直线每帧随机旋转一个角度-----//
this.createEmptyMovieClip("mymc",2);
mymc.createEmptyMovieClip("line",1);
with(mymc.line){
lineStyle(5,0x00FFFF,30);
moveTo(0,0);
lineTo(20,20);
}
mymc.onEnterFrame=function(){
this.line._x=this._xmouse;
this.line._y=this._ymouse;
this.line._rotation=Math.random()*360;
}
//----------------效果部分结束-------------------------//
this.onEnterFrame=function(){
mybmp.draw(this);//不停的描绘场景
}
我的理解是BitmapData.draw就像一个照相机,将图像记录下来,保存到位图对象,我们让他不停的纪录,就能将所有的图片同时展现出来,就像以上的实例,这样可以替代以前复制大量的mc并分别设置属性来显示效果的操作,关键是不会占用大量资源.