您的位置: 首页 > 技术文档 > 多媒体制作 > Flash 8 Copy Pixels位图象素复制
Flash 8 新特性之线条属性的改变 回到列表 Flash 8 AS Filter Class滤镜入门
 Flash 8 Copy Pixels位图象素复制

作者:neo 时间: 2005-08-23 文档类型:原创 来自:AllanBlog

Flash 8 Professional Copy Pixels位图象素复制
Author:Allan
转载请注明出处:Allan.Blog()

除了Flash 8 中自带的各种简单Filter滤镜效果之外,还对bitmapData位图对象提供了非常强大的象素操作。当然,有了象素级的操作,最直接的用途就是我们可以直接控制位图中的每个点,改变他的颜色、位置,能直接创造属于自己的丰富的滤镜,当然,前途是美好的,一定要注意执行效率,虽然Flash Player8的效率已经大为提高,不过我还是在试验各种象素操作中误入超大运算而死机……。

今天的例子是最为简单的一个得到象素并复制到一个新对象中的操作,不过有了这个功能,位图操作的可能性就无限量了。

import flash.display.*;
import flash.geom.*;
//导入本例所需要的二个Pageage

var sourceBD:BitmapData = BitmapData.loadBitmap(”mypic”);
//创建bitmapData对象以用于存放源图片,源图已在库中并命名为mypic

var mc:MovieClip = this.createEmptyMovieClip(”mc”, this.getNextHighestDepth());
mc._x = 25;
mc._y = 100;
mc.attachBitmap(sourceBD,mc.getNextHighestDepth());
//在Stage上创建空MC,并使用MC的attachBitmap方法将刚才创建的bitmapData对象读取到这个MC中

var targetBD:BitmapData = new BitmapData(230, 230, false, 111111);
//创建另一个bitmapData对象作为复制目标

var mc2:MovieClip = this.createEmptyMovieClip(”mc”, this.getNextHighestDepth());
mc2._x = 290;
mc2._y = 100;
mc2.attachBitmap(targetBD,mc.getNextHighestDepth());
//同样在Stage上创建空MC用于存放复制目标

mc.onRollOver = function() {
//当鼠标移动到拥有源图的MC上时,开始CopyPixels
copyPixels();
};
mc.onRollOut = function() {
//移出状态停止Copy
stopcopyPixels();
};
//Copy Pixels Function
function copyPixels() {
this.onMouseMove = function() {
setCursor();//设置鼠标光标
var point:Point = new Point(_xmouse, _ymouse);
mc.globalToLocal(point);
//得到当前鼠标座位,并使用globalToLocal转换为MC内部的坐标值
var rect:Rectangle = new Rectangle(point.x, point.y, 20, 20);
/*创建一个Rectangle对象用以确定要复制的矩形区域
Rectangle对象是Flash8中新增对象,包的位置在flash.geom.Rectangle,flash.geom对象除了拥有Rectangle矩形数据对象之外,还有其它用于存放几何数据的对象类型,包括Point,Tranform等
Rectangle的构造方式为
public Rectangle(x:Number, y:Number, width:Number, height:Number)
x,y:起始座位
width,height:矩形的宽和高,最终将建立一个从 x,y到 x+width,y+height的矩形区域数据
*/
var dest:Point = new Point(point.x, point.y);
//建立dest对象用于存放目标点
targetBD.copyPixels(sourceBD,rect,dest);
/*这里就是本例操作的关键方法,copyPixels,用于将源图中的某个区域的象素复制到当前对象中
构造方式为public copyPixels(sourceBitmap:BitmapData, sourceRect:Rectangle, destPoint:Point, alphaBitmap:BitmapData, alphaPoint:Point, mergeAlpha:Boolean)
sourceBitmap:需要复制的源图,为BitmapData对象类型,这里就套用为前面建立的sourceBD
sourceRect:复制区域
deskPoint:目标点,明确将区域复制到本对象的哪一个位置,本例中完全还原源图的象素所在位置

以下几个参数在本例中都没有使用到
alphaBitmap和alphaPoint:表示可以通过另一个图片用于在复制的时候对源图产生一个alpha通道来创建带alpha通道效果的复制结果.
mergeAlpha的属性是指是否启用源图的alpha通图,但目前没有调试出具体效果,有待再研究.*/
};
}
function stopcopyPixels() {
//停止copyPixels
clearCursor();
delete this.onMouseMove;
}
function setCursor() {
//设置鼠标为方型图案
sourceCursor_mc.swapDepths(_root.getNextHighestDepth());
sourceCursor_mc.startDrag(true);
targetCursor_mc.swapDepths(_root.getNextHighestDepth());
targetCursor_mc._x = sourceCursor_mc._x+265;
targetCursor_mc._y = sourceCursor_mc._y;
Mouse.hide();
}
function clearCursor() {
//恢复鼠标
sourceCursor_mc.stopDrag();
sourceCursor_mc._x = -50;
sourceCursor_mc._y = -50;
targetCursor_mc._x = -50;
targetCursor_mc._y = -50;
Mouse.show();
}

带alpha通道图象进行复制的例子

需要Flash Player 8 [源文件下载,需要FLASH 8]

例子比较简单,不过看起来已经是Photoshop图章功能的拙形了。当然,如果用Flash制作图章功能的话,更多功能可以挖掘出来了,可以复制的时候只复制某个色彩…或直接复制为单色图片…或…XXXX。

出处:AllanBlog
责任编辑:蓝色

◎进入论坛Flash专栏版块参加讨论

相关文章 更多相关链接
Flash 8 新特性之线条属性的改变
Flash 8 AS Filter Class滤镜入门
Flash 8 少为人知的特性
Flash Player 8 支持快速安装
Flash 8.0 文件元数据写入工具
作者文章
Flash 8 Copy Pixels位图象素复制
Flash 8 AS Filter Class滤镜入门
热门搜索:CSS Fireworks 设计比赛 网页制作 Dreamweaver Studio8 Flash
站点最新 站点最新列表
疯狂的程序员 第五十回
疯狂的程序员 第四十九回
疯狂的程序员 第四十八回
疯狂的程序员 第四十七回
疯狂的程序员 第四十六回
疯狂的程序员 第四十五回
疯狂的程序员 第四十四回
疯狂的程序员 第四十三回
疯狂的程序员 第四十二回
疯狂的程序员 第四十一回
栏目最新 栏目最新列表
火星人的耳机
公司正式宣布创业失败
用corelDEAW 12打造唇膏
二行代码解决全部网页木马
一行代码解决iframe挂马
Photoshop制作星空爆炸效果
CorelDraw 12打造休闲裤
Firework如何画特殊的切角图形
Firework打造韩式风格的手提袋
flash实例:打造佛光效果

蓝色理想版权申明:除部分特别声明不要转载,或者授权我站独家播发的文章外,大家可以自由转载我站点的原创文章,但原作者和来自我站的链接必须保留(非我站原创的,按照原来自一节,自行链接)。文章版权归我站和作者共有。

转载要求:转载之图片、文件,链接请不要盗链到本站,且不准打上各自站点的水印,亦不能抹去我站点水印。

特别注意:本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有,文章若有侵犯作者版权,请与我们联系,我们将立即删除修改。

本文现有 5 条评论 评分:- llllllllllllllllllll + 评分人数: 2 ,平均分: 3.00


潇洒 Publish at 2006-3-20 10:42:42
我就是用Flash8开的……
蓝色 Publish at 2005-9-1 23:14:00
这应该是要用 flash8 才能打开吧。
潇洒 Publish at 2005-9-1 3:06:48 评分1
大哥,源文件下载下来打开后是空的。我下了几次都是这样. >_<
潇洒 Publish at 2005-9-1 2:58:40 评分5
强的……Flash越来越向PS靠拢了…… 看来合并真的有好处!~
感觉这两个效果都挺像遮罩的^_^
eTruman Publish at 2005-8-24 10:50:23
不错,不过最好在编辑环境下位图能以像素点显示
您的评论
用户名:  口令:
说明:输入正确的用户名和密码才能参与评论。如果您不是本站会员,你可以注册 为本站会员。
注意:文章中的链接、内容等需要修改的错误,请用报告错误,以利文档及时修改。
不评分 1 2 3 4 5
注意:请不要在评论中含与内容无关的广告链接,违者封ID
请您注意:
·不良评论请用报告管理员,以利管理员及时删除。
·尊重网上道德,遵守中华人民共和国的各项有关法律法规
·承担一切因您的行为而直接或间接导致的民事或刑事法律责任
·本站评论管理人员有权保留或删除其管辖评论中的任意内容
·您在本站发表的作品,本站有权在网站内转载或引用
·参与本评论即表明您已经阅读并接受上述条款
推荐文档 | 打印文档 | 评论文档 | 报告错误  
专业书推荐 更多内容
大师之路--Photoshop 完全解析
《超越CSS》新书上市
Don't Make Me Think 第2版
HTML与CSS入门经典(第7版)
《FLASH MX2004网站开发精粹》
《CSS入门经典》
《设计师谈网页设计思维》
作品集 更多内容

中华有才网 css&nbsp;zen&nbsp;garden 铁人速涂 新研究的一种胶囊 标志设计 一个娱乐平台界面 08上半年工作作品集&#40;2&#41; topble首页