当前位置:首页 > Flash闪客看点 > Flash教程 > Flash 8 Professional Copy Pixels位图象素复制

Flash 8 Professional Copy Pixels位图象素复制

2017-11-28来源:闪客帝国编辑:佚名标签:

文章导读
  除了Flash 8 中自带的各种简单Filter滤镜效果之外,还对bitmapData位图对象提供了非常强大的象素操作。当然,有了象素级的操作,最直接的用途就是我们可以直接控制位图中的

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

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

  Flash代码:

            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();
}
以此类推,对于其它滤镜,也能方便的通过此方法用AS简单实现。相对于MovieClip的Filter方法, Flash8中的bitmapdata对象则提供了更为强大的对位图操作的功能,bitmapdata除了应用滤镜对象外,通过象素及色彩控制,可以完全创建属于自己的更为丰富的滤镜特效,以后的Flash资源站上肯定将出现一类叫“Flash滤镜”下载了。

编辑:卡其色

留言跟帖
热门文章
日榜 周榜
1 完整把握Flash动画设计的知识体系

本文明确阐述了在应用Flash进行动画创作和部署的完整知识,对知识体系进行了总结归纳,在知识不断增长和爆炸的时代,我们建立一个逻辑的知识体系,以利于用户快速、准确、完整地掌握它。...

2 Flash 8 Professional Copy Pixels位图象素复制

  除了Flash 8 中自带的各种简单Filter滤镜效果之外,还对bitmapData位图对象提供了非常强大的象素操作。当然,有了象素级的操作,最直接的用途就是我们可以直接控制位图中的...

3 LOLS8赛季60枚符文属性分析

目前英雄联盟S7赛季已经进入尾声,有消息称S8赛季符文系统将推倒重建,进行大改版。因为现在商店里的符文已经全部免费很久了,所以有理由相信这个消息真实是十分可靠。目前官方已经放出了消息,新赛季的60枚符文已经全部揭晓,小编也为大家带来了介绍,一起来看看吧!...

4 英雄联盟打野抓人技巧分享

在英雄联盟打野这个位置,一般在势均力敌的时候是最头疼的,因为不知道应该怎么帮助队友GANK,毕竟不是所有打野都是发育性打野。所以那些前期强势的打野,就应该想方设法的在前期击垮地方。...

5 王者荣耀打野有什么技巧 可以一次刷三个野怪的英雄

王者荣耀是一个和英雄联盟差不多的推塔竞技类游戏。打野这个位置是非常重要的,如果哪一方的打野优势比较大,那么赢的几率就会大很多。所以,有一个会打野的小伙伴是非常幸运的。...

6 王者荣耀重做周瑜玩法攻略教学

近日,王者荣耀中周瑜这个英雄重做归来,但是对于周瑜这个英雄, 操作要求是非常高的,所以对于不熟悉周瑜的人建议不要用他去排位,否则就是坑队友啊。还是需要多练习练习。...

7 英雄联盟重做后赵信玩法攻略

相信很多小伙伴都知道赵信在今天重做归来了吧?那么重做后的赵信技能是什么样的呢?他应该怎么玩?相信很多小伙伴都在研究。小编已经整理了一下赵信的改动变化,对于改动也研究了一下赵信的玩法技巧。...

8 王者荣耀国服第一韩信小新如何出装 韩信出装教程

在王者荣耀中存在着许多大神。其中玩韩信最出名的就莫过于有着王者荣耀第一韩信之称的小新。近日小新利用韩信100场将近94%的胜率登顶荣耀王者。一起来看看他的出装吧。...

9 王者荣耀上单应该注意什么 玩上单英雄应该注意的五点技巧

很多玩王者荣耀的玩家对于上单这个位置了解不是很透彻,有的人只是一味的认为上单就是一个坦克,能够抗伤害,给队友输出的时间和空间就好了。其实不然,上单不仅仅需要做这些。玩上单英雄还需要注意五点技巧。这样就会更轻松。...

10 2017王者荣耀神秘商店抽一折技巧攻略分享

最近王者荣耀可以说是利用了假期的黄金时段频频出活动。就在今天网站荣耀推出了神秘商店抽折扣的活动,用户登录商店以后可以直接抽取一到九折的购买折扣,还是相当划算的,如果抽中了一折就可以大肆买买买了。那么抽折扣有技巧吗,小编就为大家分析一下吧!...

1 完整把握Flash动画设计的知识体系

本文明确阐述了在应用Flash进行动画创作和部署的完整知识,对知识体系进行了总结归纳,在知识不断增长和爆炸的时代,我们建立一个逻辑的知识体系,以利于用户快速、准确、完整地掌握它。...

2 Flash 8 Professional Copy Pixels位图象素复制

  除了Flash 8 中自带的各种简单Filter滤镜效果之外,还对bitmapData位图对象提供了非常强大的象素操作。当然,有了象素级的操作,最直接的用途就是我们可以直接控制位图中的...

3 LOLS8赛季60枚符文属性分析

目前英雄联盟S7赛季已经进入尾声,有消息称S8赛季符文系统将推倒重建,进行大改版。因为现在商店里的符文已经全部免费很久了,所以有理由相信这个消息真实是十分可靠。目前官方已经放出了消息,新赛季的60枚符文已经全部揭晓,小编也为大家带来了介绍,一起来看看吧!...

4 英雄联盟打野抓人技巧分享

在英雄联盟打野这个位置,一般在势均力敌的时候是最头疼的,因为不知道应该怎么帮助队友GANK,毕竟不是所有打野都是发育性打野。所以那些前期强势的打野,就应该想方设法的在前期击垮地方。...

5 王者荣耀打野有什么技巧 可以一次刷三个野怪的英雄

王者荣耀是一个和英雄联盟差不多的推塔竞技类游戏。打野这个位置是非常重要的,如果哪一方的打野优势比较大,那么赢的几率就会大很多。所以,有一个会打野的小伙伴是非常幸运的。...

6 王者荣耀重做周瑜玩法攻略教学

近日,王者荣耀中周瑜这个英雄重做归来,但是对于周瑜这个英雄, 操作要求是非常高的,所以对于不熟悉周瑜的人建议不要用他去排位,否则就是坑队友啊。还是需要多练习练习。...

7 英雄联盟重做后赵信玩法攻略

相信很多小伙伴都知道赵信在今天重做归来了吧?那么重做后的赵信技能是什么样的呢?他应该怎么玩?相信很多小伙伴都在研究。小编已经整理了一下赵信的改动变化,对于改动也研究了一下赵信的玩法技巧。...

8 王者荣耀国服第一韩信小新如何出装 韩信出装教程

在王者荣耀中存在着许多大神。其中玩韩信最出名的就莫过于有着王者荣耀第一韩信之称的小新。近日小新利用韩信100场将近94%的胜率登顶荣耀王者。一起来看看他的出装吧。...

9 王者荣耀上单应该注意什么 玩上单英雄应该注意的五点技巧

很多玩王者荣耀的玩家对于上单这个位置了解不是很透彻,有的人只是一味的认为上单就是一个坦克,能够抗伤害,给队友输出的时间和空间就好了。其实不然,上单不仅仅需要做这些。玩上单英雄还需要注意五点技巧。这样就会更轻松。...

10 2017王者荣耀神秘商店抽一折技巧攻略分享

最近王者荣耀可以说是利用了假期的黄金时段频频出活动。就在今天网站荣耀推出了神秘商店抽折扣的活动,用户登录商店以后可以直接抽取一到九折的购买折扣,还是相当划算的,如果抽中了一折就可以大肆买买买了。那么抽折扣有技巧吗,小编就为大家分析一下吧!...

关于闪客帝国 | 联系方式 | 发展历程 | 闪客技术帮助 | 广告联系 | 网站地图

备案号:京ICP备05065306号 技术支持:闪客帝国