Bit地图Data动态效果

BitmapData动态效果

[1b]一、计算机中显示的图形一般可以分为两大类——矢量图和位图。[/1b]
[1b]矢量图(vector):[/1b]使用直线和曲线来描述图形,这些图形的元素是一些点、线、矩形、多边形、圆和弧线等等,它们都是通过数学公式计算获得的。众所周知Flash就是一款矢量动画制作软件。在AS中使用的填色(beginFill),画线(lineTo)等命令都是基于对矢量图的操作。
[1b]位图(Bitmap):[/1b]一般是用于照片品质的图像处理,是由许多像小方块一样的像素组成的图形。简单地说,位图就是以无数的色彩点组成的图案。位图(Bitmap)也就是我们今天要介绍的。
[1b]
两者比较:[/1b]
1、矢量图可以无限放大,而且不会失真; 而位图会失真。
2、位图由像素组成而矢量图由矢量线组成。
3、位图可以表现的色彩比较多;而矢量图则相对较少。
4、矢量图体积小,但比较消耗计算资源;位图则比较消耗内存资源,但对计算资源消耗小。
[1b]二、BitmapData类的概念
[/1b]BitmapData类可用于在文档中创建可任意调整大小的透明或不透明位图图像,并且可以在运行时以各种方式对它们进行处理。可以把BitmapData对象看成一个特殊的数组,专门用来存储位图的像素点阵信息。如果一个位图大小是100*100,那么BitmapData中就好比一个存储在一个100*100的二维数组,对应存储这10000像素的颜色值。
[1b]三、BitmapData类的使用
[/1b]import flash.display.BitmapData;
//导入BitmapData类
var bm = new BitmapData(width,height,transparent,fillcolor);
//实例化
[1b]四、BitmapData构造函数
[/1b]public BitmapData(width, height, [transparent], [fillColor])
width(宽):位图数据的宽度(像素);
height(高): 位图数据的高度(像素);
[transparent(透明度)]: 是否支持每个像素具有不同的透明度;
[fillcolor(添充色)]: 用于填充位图图像区域。默认为0xFFFFFFFF(白色)
*[中括号]表示可选参数
例如(创建一个100*100的位图数据):
import flash.display.BitmapData;
var bm:BitmapData = new BitmapData(100,100,false,0xffff00)
[1b]五、BitmapData.draw()方法
[/1b]Draw()方法简单地理解为:复制像素到BitmapData对象中。
例如:在主场景有一个影片剪辑,实例名为"pic"
import flash.display.BitmapData;
var bm:BitmapData = new BitmapData(100, 100);
bm.draw(pic);
//bm复制pic的像素
_root.createEmptyMovieClip("mc", 10);
mc._x = mc._y=150;
mc.attachBitmap(bm, 1);
//用mc加载位图数据bm,深度为1。
*注意:位图在影片剪辑(pic)中的位置。
Bit地图Data动态效果
在使用draw()方法复制像素时,永远是从mc的(0,0)点开始取。所以小于(0,0)位置的像素都不会被取到。
Bit地图Data动态效果
[url=http://blog.sina.com.cn/main/html/showpic.html#url=http://album.sina.com.cn/pic/3ecb9b1143fbe499c579c][/url]
应正确放置位图在影片剪辑中的位置(注册点在左上(0,0))
[1b]六、Rectangle 类[/1b]
所以介绍Rectangle 类是因为它常与BitmapData类配合使用。
1、作用:在BitmapData类中用于定义位图图像大小和位置的矩形。
2、Rectangle 类的使用
import flash.geom.Rectangle;
public Rectangle(x, y, width, height)
x - 矩形左上角的 x 坐标。
y - 矩形左上角的 y 坐标。
width - 矩形的宽度,以像素为单位。
height - 矩形的高度,以像素为单位。
例如(一个100*100的矩形):
import flash.geom.Rectangle;
myRect = new Rectangle(0,0,100,100);
好啦,说了这么多理论知识,都是为我们的实例做铺垫的,下面就开始动手操作吧!
[1b]实例1:放大镜效果[/1b][BitmapData. copyPixels()]
           
本文转自:http://www.5uflash.com/flashjiaocheng/Flashyingyongkaifa/1028.html