flash as2 简易手写板,带擦除功能
2012-10-12 11:54
211 查看
//舞台上当前层需要放置名称分别为mc_bursh/mc_earse的影片剪辑
//友情提示,例子中有跟界面呈现不相关的代码,不过不影响实际功能,具体使用的时候,可以考虑酌情删减!
import flash.display.BitmapData;
import flash.geom.Rectangle;
import flash.geom.Point;
var tools = "bursh";
var widthh = 1200;
var base_point:Point = new Point(0, 0);
var base_rectangle:Rectangle = new Rectangle(0, 0, 25, 25);
var bit1:BitmapData = new BitmapData(widthh, 768, false, 0xff0000);
var org_bit:BitmapData = new BitmapData(widthh, 768, true, 0);
org_bit.draw(bit1);
var draw_bit:BitmapData = org_bit.clone();
createEmptyMovieClip("draw_mc", -999);
createEmptyMovieClip("mc1", 2);
createEmptyMovieClip("mc2", 3);
createEmptyMovieClip("mc3", 4);
drawCircle(mc1, 40, 40, 40, 0x000000);
drawCircle(mc2, 4, 4, 4, 0x000000);
mc1._visible = mc2._visible=mc3._visible=false;
draw_mc.attachBitmap(draw_bit, 1);
var erase_bit:BitmapData = new BitmapData(mc1._width, mc1._height, true, 0);
var redraw_bit:BitmapData = new BitmapData(mc2._width, mc2._height, true, 0);
erase_bit.fillRect(erase_bit.rectangle, 0xFFFFFFFF);
erase_bit.draw(mc1);
redraw_bit.draw(mc2);
erase_bit.copyChannel(erase_bit, erase_bit.rectangle, new Point(0, 0), 1, 8);
var tools:String;
earse_first();
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_mc.onPress = function() {
if (tools == "bursh") {
trace(1);
mc3.moveTo(mc3._xmouse, mc3._ymouse);
this.onMouseMove = bursh_pic;
}
if (tools == "easre") {
this.onMouseMove = earse_pic;
}
};
draw_mc.onRelease = draw_mc.onReleaseOutside=function () {
delete this.onMouseMove;
};
function earse_pic() {
mc3.clear(); var now_rect:Rectangle = new Rectangle(_xmouse-mc1._width/2, _ymouse-mc1._width/2, _xmouse+base_rectangle.width, _ymouse+base_rectangle.height);
draw_bit.copyPixels(draw_bit, now_rect, new Point(_xmouse-mc1._width/2, _ymouse-mc1._width/2), erase_bit, new Point(0, 0), false);
updateAfterEvent();
}
function earse_first() {
var now_rect:Rectangle = new Rectangle(0, 0, widthh, 768);
draw_bit.copyPixels(draw_bit, now_rect, new Point(0, 0), new BitmapData(widthh, 768, true, 0x0), new Point(0, 0), false);
updateAfterEvent();
}
function bursh_pic() {
trace(mc3);
mc3.lineStyle(8, 0xff0000, 100);
mc3.lineTo(mc3._xmouse, mc3._ymouse);
draw_bit.draw(mc3);
draw_mc.attachBitmap(draw_bit, 1);
//var now_rect:Rectangle = new Rectangle(_xmouse, _ymouse, _xmouse+base_rectangle.width, _ymouse+base_rectangle.height);
//draw_bit.copyPixels(org_bit, now_rect, new Point(_xmouse-mc2._width/2, _ymouse-mc2._width/2), redraw_bit, new Point(0, 0), true);
//updateAfterEvent();
}
function drawCircle(mc:MovieClip, x:Number, y:Number, r:Number, color:Number):Void {
mc.beginFill(color);
mc.moveTo(x+r, y);
mc.curveTo(r+x, Math.tan(Math.PI/8)*r+y, Math.sin(Math.PI/4)*r+x, Math.sin(Math.PI/4)*r+y);
mc.curveTo(Math.tan(Math.PI/8)*r+x, r+y, x, r+y);
mc.curveTo(-Math.tan(Math.PI/8)*r+x, r+y, -Math.sin(Math.PI/4)*r+x, Math.sin(Math.PI/4)*r+y);
mc.curveTo(-r+x, Math.tan(Math.PI/8)*r+y, -r+x, y);
mc.curveTo(-r+x, -Math.tan(Math.PI/8)*r+y, -Math.sin(Math.PI/4)*r+x, -Math.sin(Math.PI/4)*r+y);
mc.curveTo(-Math.tan(Math.PI/8)*r+x, -r+y, x, -r+y);
mc.curveTo(Math.tan(Math.PI/8)*r+x, -r+y, Math.sin(Math.PI/4)*r+x, -Math.sin(Math.PI/4)*r+y);
mc.curveTo(r+x, -Math.tan(Math.PI/8)*r+y, r+x, y);
mc.endFill();
}
//友情提示,例子中有跟界面呈现不相关的代码,不过不影响实际功能,具体使用的时候,可以考虑酌情删减!
import flash.display.BitmapData;
import flash.geom.Rectangle;
import flash.geom.Point;
var tools = "bursh";
var widthh = 1200;
var base_point:Point = new Point(0, 0);
var base_rectangle:Rectangle = new Rectangle(0, 0, 25, 25);
var bit1:BitmapData = new BitmapData(widthh, 768, false, 0xff0000);
var org_bit:BitmapData = new BitmapData(widthh, 768, true, 0);
org_bit.draw(bit1);
var draw_bit:BitmapData = org_bit.clone();
createEmptyMovieClip("draw_mc", -999);
createEmptyMovieClip("mc1", 2);
createEmptyMovieClip("mc2", 3);
createEmptyMovieClip("mc3", 4);
drawCircle(mc1, 40, 40, 40, 0x000000);
drawCircle(mc2, 4, 4, 4, 0x000000);
mc1._visible = mc2._visible=mc3._visible=false;
draw_mc.attachBitmap(draw_bit, 1);
var erase_bit:BitmapData = new BitmapData(mc1._width, mc1._height, true, 0);
var redraw_bit:BitmapData = new BitmapData(mc2._width, mc2._height, true, 0);
erase_bit.fillRect(erase_bit.rectangle, 0xFFFFFFFF);
erase_bit.draw(mc1);
redraw_bit.draw(mc2);
erase_bit.copyChannel(erase_bit, erase_bit.rectangle, new Point(0, 0), 1, 8);
var tools:String;
earse_first();
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_mc.onPress = function() {
if (tools == "bursh") {
trace(1);
mc3.moveTo(mc3._xmouse, mc3._ymouse);
this.onMouseMove = bursh_pic;
}
if (tools == "easre") {
this.onMouseMove = earse_pic;
}
};
draw_mc.onRelease = draw_mc.onReleaseOutside=function () {
delete this.onMouseMove;
};
function earse_pic() {
mc3.clear(); var now_rect:Rectangle = new Rectangle(_xmouse-mc1._width/2, _ymouse-mc1._width/2, _xmouse+base_rectangle.width, _ymouse+base_rectangle.height);
draw_bit.copyPixels(draw_bit, now_rect, new Point(_xmouse-mc1._width/2, _ymouse-mc1._width/2), erase_bit, new Point(0, 0), false);
updateAfterEvent();
}
function earse_first() {
var now_rect:Rectangle = new Rectangle(0, 0, widthh, 768);
draw_bit.copyPixels(draw_bit, now_rect, new Point(0, 0), new BitmapData(widthh, 768, true, 0x0), new Point(0, 0), false);
updateAfterEvent();
}
function bursh_pic() {
trace(mc3);
mc3.lineStyle(8, 0xff0000, 100);
mc3.lineTo(mc3._xmouse, mc3._ymouse);
draw_bit.draw(mc3);
draw_mc.attachBitmap(draw_bit, 1);
//var now_rect:Rectangle = new Rectangle(_xmouse, _ymouse, _xmouse+base_rectangle.width, _ymouse+base_rectangle.height);
//draw_bit.copyPixels(org_bit, now_rect, new Point(_xmouse-mc2._width/2, _ymouse-mc2._width/2), redraw_bit, new Point(0, 0), true);
//updateAfterEvent();
}
function drawCircle(mc:MovieClip, x:Number, y:Number, r:Number, color:Number):Void {
mc.beginFill(color);
mc.moveTo(x+r, y);
mc.curveTo(r+x, Math.tan(Math.PI/8)*r+y, Math.sin(Math.PI/4)*r+x, Math.sin(Math.PI/4)*r+y);
mc.curveTo(Math.tan(Math.PI/8)*r+x, r+y, x, r+y);
mc.curveTo(-Math.tan(Math.PI/8)*r+x, r+y, -Math.sin(Math.PI/4)*r+x, Math.sin(Math.PI/4)*r+y);
mc.curveTo(-r+x, Math.tan(Math.PI/8)*r+y, -r+x, y);
mc.curveTo(-r+x, -Math.tan(Math.PI/8)*r+y, -Math.sin(Math.PI/4)*r+x, -Math.sin(Math.PI/4)*r+y);
mc.curveTo(-Math.tan(Math.PI/8)*r+x, -r+y, x, -r+y);
mc.curveTo(Math.tan(Math.PI/8)*r+x, -r+y, Math.sin(Math.PI/4)*r+x, -Math.sin(Math.PI/4)*r+y);
mc.curveTo(r+x, -Math.tan(Math.PI/8)*r+y, r+x, y);
mc.endFill();
}
相关文章推荐
- 玩的就是影片剪辑-雅酷flash as2简易教程第1篇
- 让运动更流畅、更优雅、更丰富——雅酷互动flash as2简易教程第3篇
- 雅酷互动flash as2简易教程第4篇
- 人人皆可FLASH-雅酷FLASH AS2简易教程第0篇
- 雅酷互动flash as2简易教程第3篇
- 懒人自有懒办法——雅酷互动flash as2简易教程第4篇
- asp.net 非常简易的新闻发布系统,结合了ajax,json,Nvelocity模板引擎,只完成了一部分功能,非常适合新手看,我以前是学java方向的,刚接触.net,做的不好的别喷哈
- 用OC语言完成简易通讯录(实现增删改查)功能.
- php实现简易的搜索功能
- Kivy 中文教程 实例入门 简易画板 (Simple Paint App):2. 实现绘图功能
- 网页播放器视频列表连播/简易图片列表连播功能(免费版)
- 比较Flash AS3与AS2特性与功能
- 初试Flash影片功能
- 整理简易分享功能
- ecmall flash大转盘积分抽奖功能
- jquery+flash实现点击复制功能(需在服务器上测试有效)
- Android实战简易教程<二十七>(Android设置头像上传功能实现)
- Flash 弹出菜单,点击舞台其他地方,关闭菜单功能的 实现方法
- VC写的Flash动画播放组件 ,实现透明播放Flash动画及交互功能,类似迅雷及PPS广告动画