文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院媒体动画FlashFlash代码实例:神奇的互动橡皮刷
精品推荐
特别推荐
·FLASH基础的一些心得体会
·推荐:不间断滚动显示图片的代码
·全面升级您的Flash播放器
·由浅入深学习Flash制作高射炮游戏
·由浅入深学习Flash制作高射炮游戏(续)
·遮照及文字遮照的几个概念和事例
·创建一个实用Flash站点的十大技巧
·Flash动画制作实例:小野人玩摇滚
·Flash技术在电子杂志设计制作应用
·用js+flash实现网页中复制数据功能
热点TOP10
·由浅入深学习Flash制作高射炮游戏
·Flash AS基础精典教程
·Flash如何制作灯光效果
·日本动画制作幕后完全流程揭秘
·Flash制作烟花效果动画
·Flash 图片轮换效果
·用FLASH遮罩效果做图片切换效果
·以Flash动画作网站引导页面是不是真的需要呢?
·Flash制作漂亮的三重卷动相册特效动画
·Flash制作环型立体旋转的动态文字

Flash代码实例:神奇的互动橡皮刷

日期:2007年12月10日 作者: 查看:[大字体 中字体 小字体]


  以前用做橡皮刷的时候通常都是通过绘制底图实现的,最近在发现其实还有一种更好的实现方法就是用bitmapdata的alpha通道。

  只要在一张图片上用draw画一个透明度为零的图片,就可以实现在draw的区域图片透明了。

  完成效果如下:

/imagelist/2007/330/uh0yb68gxc5l.swf


  点击选择右边的橡皮刷或者画笔图标,再用鼠标在画面上拖动,看看会出现什么情况?

  AS代码如下:


//导入所需要的类
import flash.display.BitmapData;
import flash.geom.Rectangle;
import flash.geom.Point;
//初始点(0,0)
var base_point:Point = new Point(0, 0);
//初始区域(0,0,25,25)
var base_rectangle:Rectangle = new Rectangle(0, 0, 25, 25);
//导入库中图片
var bit1:BitmapData = BitmapData.loadBitmap("img1");
//定义org_bit:BitmapData用于恢复图片
var org_bit:BitmapData = new BitmapData(mc._width, bit1.height, true, 0);
org_bit.draw(bit1);
//draw_bit拷贝org_bit用于涂鸦操作
var draw_bit:BitmapData = org_bit.clone();
//导入到舞台中
_root.createEmptyMovieClip("draw_mc", 1);
draw_mc.attachBitmap(draw_bit, 1);
//定义橡皮刷erase_bit和笔刷redraw_bit argb为0(透明)
var erase_bit:BitmapData = new BitmapData(mc1._width, mc1._height, true, 0);
var redraw_bit:BitmapData = erase_bit.clone();
//橡皮刷erase_bit填充为白色,这里注意a必须不为0 rbg为FFFFFF
erase_bit.fillRect(erase_bit.rectangle, 0xFFFFFFFF);
//定义橡皮刷erase_bit和笔刷redraw_bit形状 注意mc1必须为黑色 你也可以尝试用别的颜色看看效果慢慢体会吧
erase_bit.draw(mc1);
redraw_bit.draw(mc1);
//交换erase_bit r通道和a通道数值 所以a通道数值为00
erase_bit.copyChannel(erase_bit, erase_bit.rectangle, new Point(0, 0), 1, 8);
//保存当前使用的工具
var tools:String;
//点击笔刷工具
mc_bursh.onRelease = function()
{
        this.gotoAndStop(2);
        mc_earse.gotoAndStop(1);
        tools = "bursh";
};
//点击橡皮刷工具
mc_earse.onRelease = function()
{
        this.gotoAndStop(2);
        mc_bursh.gotoAndStop(1);
        tools = "easre";
};
//在draw_bit上涂鸦
draw_mc.onPress = function()
{
        trace(tools);
        if (tools == "bursh")
        {
                this.onMouseMove = bursh_pic;
        }
        if (tools == "easre")
        {
                this.onMouseMove = earse_pic;
        }
};
//停止涂鸦
draw_mc.onRelease = function()
{
        delete this.onMouseMove;
};
//橡皮刷工具
function earse_pic()
{
        var now_rect:Rectangle = new Rectangle(_xmouse, _ymouse, _xmouse+base_rectangle.width, _ymouse+base_rectangle.height);
        trace(now_rect);
        //在draw_bit上使用copyPixels alpha为false 透明区域透明 不透明区域保持原色
        draw_bit.copyPixels(draw_bit, now_rect, new Point(_xmouse, _ymouse), erase_bit, new Point(0, 0), false);
        updateAfterEvent();
}
//笔刷工具
function bursh_pic()
{
        var now_rect:Rectangle = new Rectangle(_xmouse, _ymouse, _xmouse+base_rectangle.width, _ymouse+base_rectangle.height);
        trace(now_rect);
        //在org_bit上使用copyPixels alpha为true 则笔刷工具只有不透明的地方起作用
        draw_bit.copyPixels(org_bit, now_rect, new Point(_xmouse, _ymouse), redraw_bit, new Point(0, 0), true);
        updateAfterEvent();
}
//移动背景图观察效果
mc.onPress = function()
{
        this.startDrag();
};
mc.onRelease = function()
{
        this.stopDrag();
};

(出处:清风网络学院






上一篇:站长的视频建站时代 离你已经不远了

下一篇:Photoshop巧将照片处理成淡彩线描特效

相关文章:
·QQ空间免费换皮肤代码
·qq空间皮肤背景代码:QQ空间不用Q币更换主页皮肤方法
·QQ空间最新黄钻皮肤代码
·由浅入深学习Flash制作高射炮游戏
·Photoshop CS3合成实例:人间天堂
·Flash AS基础精典教程
·杀毒技巧系列:杀毒、防恶意代码、脚本病毒的不完全合集
·QQ空间4.0 透明Flash_500个
·Flash如何制作灯光效果
·QQ空间透明flash代码
相关软件:
·中文版Excel 2003实例与技巧
·孙鑫VC++从入门到精通开发详解视频教程FLASH版
·儿童数学启蒙教育亲子互动版v6.0
·CorelDraw12 入门与实例(图文教程 菜鸟先飞系列教材)
·AutoCAD2002入门与实例详解
·Flash MX 从入门到精通
·颐家IDO在线互动设计软件
·《flash制作高级教程》
·注册表实例应用视频教程swf
·Flash MX 动画制作实例教程

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.viphot.com
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.viphot.com All Rights Reserved. 鄂ICP备05000083号Powered by:viphot