//cp 要用智慧物件的顏色選擇器
var txt :TextField = new TextField ();
this.addChild(txt);
var mc_move :MovieClip = new MovieClip();
this.addChild(mc_move);
var a :MovieClip = new MovieClip ();
var b :MovieClip = new MovieClip();
mc_move.x=100;
a.name="a";
b.name="b";
a.x=150;
b.x=300;
with (mc_move.graphics) {
lineStyle(2);
beginFill(0xFFFFFF);
moveTo(0,0);
lineTo(300,0);
lineTo(300,300);
lineTo(0,300);
lineTo(0,0);
}
with (a.graphics) {
lineStyle(2);
beginFill(0xFF0000);
moveTo(0,0);
lineTo(50,0);
lineTo(50,50);
lineTo(0,50);
lineTo(0,0);
}
with (b.graphics) {
lineStyle(2);
beginFill(0xFF0000);
moveTo(0,0);
lineTo(50,0);
lineTo(50,50);
lineTo(0,50);
lineTo(0,0);
}
this.addChild(a);
this.addChild(b);
//主容器
var main:Sprite = new Sprite();
main.mouseEnabled=false;
addChild(main);
//临时容器(所有操作都将先画在临时容器里,再进行"画"或"擦")
var mc:Sprite = new Sprite();
main.addChild(mc);
//保存最终画出来的内容的bitmapdata
var content:BitmapData=new BitmapData(550,400,true,0x00FFFFFF);
//把content显示出来
var show:Bitmap=new Bitmap(content);
main.addChildAt(show,0);
//默认选中画笔
var action:Number=0;
txt.text = "当前选中:画笔"
;
mc_move.addEventListener(MouseEvent.MOUSE_DOWN,startDraw);
a.addEventListener(MouseEvent.CLICK,changeAction);
b.addEventListener(MouseEvent.CLICK,changeAction);
function changeAction(e:MouseEvent):void {
if (e.target.name=="a") {
action = 0
;
txt.text = "当前选中:画笔"
;
mc.visible = true
;
} else {
action = 1
;
txt.text = "当前选中:橡皮"
;
mc.visible = false
;
}
}
function startDraw(e:MouseEvent):void {
mc.graphics.lineStyle(20,cp.selectedColor);
mc.graphics.moveTo(mouseX,mouseY);
mc_move.addEventListener(MouseEvent.MOUSE_MOVE,drawing);
stage.addEventListener(MouseEvent.MOUSE_UP,stopDraw);
}
function stopDraw(e:MouseEvent):void {
if (action!=1) {
content.draw(mc,new Matrix(),new ColorTransform(),BlendMode.NORMAL,new Rectangle(0,0,550,400));
}
mc.graphics.clear();
mc_move.removeEventListener(MouseEvent.MOUSE_MOVE,drawing);
stage.removeEventListener(MouseEvent.MOUSE_UP,stopDraw);
}
function drawing(e:MouseEvent):void {
mc.graphics.lineTo(mouseX,mouseY);
if (action==1) {
content.draw(mc,new Matrix(),new ColorTransform(),BlendMode.ERASE);
}
e.updateAfterEvent();
}