Flash代码实例:神奇的互动橡皮刷
日期:2007年12月10日 作者: 查看:[大字体 中字体 小字体]-
以前用做橡皮刷的时候通常都是通过绘制底图实现的,最近在发现其实还有一种更好的实现方法就是用bitmapdata的alpha通道。
只要在一张图片上用draw画一个透明度为零的图片,就可以实现在draw的区域图片透明了。
完成效果如下:
点击选择右边的橡皮刷或者画笔图标,再用鼠标在画面上拖动,看看会出现什么情况?
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();
};(出处:急速软件下载学院)
-
- Flash代码实例:神奇的互动橡皮刷 相关文章:
- ·免费领养QQ空间五级花最新技巧及代码放送
- ·QQ空间导航代码最新版使用方法
- ·Flash代码实例:神奇的互动橡皮刷
- ·Javascript代码直接调用计算机中的程序
- ·关于Asp代码与页面的分离
- ·分页列表的网页特效代码
- ·防止被杀毒软件误删的代码
- ·CSS实现网页中的隔行换色代码
- ·内容拷贝增加版权信息的JavaScript代码
- ·网站不能为静态化的方便而用了JS代码来包含
- Flash代码实例:神奇的互动橡皮刷 相关软件
- ·C语言垃圾代码清除工具
- ·Microsoft Windows 系统错误代码
- ·JAVA 3D 魔方源代码
- ·Oracle官方文档CHM合集-Oracle10g错误代码
- ·Oracle官方文档CHM合集-Oracle9i错误代码
- ·WINDOWS 蓝屏错误代码说明一览表
- ·Flash MX即时代码之使用ASP.NET
- ·Linux专家之路_Linux内核源代码
- ·Flash MX即时代码:使用ASP.NET
- ·Flash MX即时代码:使用ASP.NET(CHM)
- 特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作
- 者.文章版权归文章原始作者所有.对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转
- 载的文章有版权问题请联系编辑人员,我们尽快予以更正. 转载请注明来源:http://www.hackhome.com
精品推荐
热点TOP10
- ·Flash:相片浏览器 V1.0
- ·Flash实例教程:用Flash制作折扇动画
- ·Macromedia Flex 教程: Flex入门教程
- ·日本动画制作幕后完全流程揭秘
- ·Flash教程:教你用FMS在线录制视频
- ·Flash声音控制详解
- ·Flash绘制精致矢量图——斑驳的秋天落叶
- ·Flash 图片轮换效果
- ·Flash:80行AS代码打造奇幻光影
- ·将调用多个swf文件的flash合成一个EXE文件
- ·Flash初学者入门常见问题八十八问
- ·Flash联合粒子特效软件打造超酷浪漫动画特效
- ·Flash高级应用:用AS3调用摄像头
- ·天下无敌!Flash游戏修改器作弊全攻略
- ·Flash AS制作下雪动画效果
- ·技巧:Flash中的打印控制
- ·用FLASH遮罩效果做图片切换效果
- ·Flash中如何显示清晰的字体
- ·FlashMX中暗藏小游戏
- ·韩国A3动态弹性菜单分步学
特别推荐
- ·Flash技术在电子杂志设计制作应用
- ·用js+flash实现网页中复制数据功能
- ·教你如何去掉网页上的Flash动画虚线框
- ·让Flash动画适应任何分辨率的网页
- ·基础:flash9.ocx 加载错误解决方法
- ·Flash AS基础精典教程
- ·Flash AS教程之四 动态文本的编写以及外部文本的载入
- ·flash载入外部文本设置颜色的问题
- ·Flash制作漂亮的三重卷动相册特效动画
- ·关于网页中Flash弹出网页窗口的详细讲解
- ·用FLASH遮罩效果做图片切换效果
- ·实例技巧:Flash与HTML实现交互的实例
- ·Macromedia Flex 教程: Flex入门教程
- ·高级游戏制作:Flash制作物体弹跳电脑游戏
- ·技巧:用Flash制作动画的经典问题问答
- ·Flash最常用AS语法及语句总结
- ·Flash文件的加密与破解技术详细解析
- ·Flash电子书鼠标拖拽翻页效果原理分析
- ·Flash入门应该了解的重要概念
- ·Flash绘精致矢量图—逼真土豆
