graphics类是用来创建矢量图像的类,这是做的一个画板:
package { import flash.display.MovieClip; import flash.display.Sprite; import flash.events.MouseEvent; import flash.events.Event; import fl.controls.ColorPicker; import fl.events.ColorPickerEvent; import fl.controls.Button; public class HuaBanMain extends MovieClip { private var color1:ColorPicker = new ColorPicker(); private var zsp:Sprite=new Sprite(); private var sp1:Sprite=new Sprite(); private var sp2:Sprite=new Sprite(); private var sp3:Sprite=new Sprite(); private var secai:uint; private var Xbt:Button = new Button(); private var Zbt:Button = new Button(); private var Ybt:Button = new Button(); private var bl1:uint; private var bl2:uint; private var u:uint = 0; public function HuaBanMain() { //zsp.x=50; // zsp.y=50; // zsp.height=400; // zsp.width=500; // color1.x=20; color1.y=20; addChild(color1); Xbt.x=20; Xbt.y=70; Xbt.toggle = true; Xbt.width=30; Xbt.label = "线"; Zbt.x=20; Zbt.y=110; Zbt.toggle = true; Zbt.width=30; Zbt.label = "矩"; Ybt.x=20; Ybt.y=150; Ybt.toggle = true; Ybt.width=30; Ybt.label = "圆"; addChild(Xbt); addChild(Zbt); addChild(Ybt); Xbt.addEventListener(MouseEvent.CLICK,onXbthandler); Zbt.addEventListener(MouseEvent.CLICK,onZbthandler); Ybt.addEventListener(MouseEvent.CLICK,onYbthandler); ys(); } private function onXbthandler(e:MouseEvent):void { Xbt.selected = true; Zbt.selected = false; Ybt.selected = false; stage.addEventListener(MouseEvent.MOUSE_DOWN,onMouseDownHandler); stage.addEventListener(MouseEvent.MOUSE_UP,onMouseUpHandler); } private function onZbthandler(e:MouseEvent):void { Zbt.selected = true; Xbt.selected = false; Ybt.selected = false; stage.addEventListener(MouseEvent.MOUSE_DOWN,onMouseDownHandler); stage.addEventListener(MouseEvent.MOUSE_UP,onMouseUpHandler); } private function onYbthandler(e:MouseEvent):void { Ybt.selected = true; Xbt.selected = false; Zbt.selected = false; stage.addEventListener(MouseEvent.MOUSE_DOWN,onMouseDownHandler); stage.addEventListener(MouseEvent.MOUSE_UP,onMouseUpHandler); } public function ys():void { color1.addEventListener(ColorPickerEvent.CHANGE,oncolor1handler); } public function oncolor1handler(e:ColorPickerEvent):void { //trace(e.target.hexValue); secai =uint("0x"+e.target.hexValue); if(Xbt.selected == true||Zbt.selected == true||Ybt.selected == true) { stage.addEventListener(MouseEvent.MOUSE_DOWN,onMouseDownHandler); } } public function onMouseDownHandler(e:MouseEvent):void { if(Xbt.selected == true) { sp1.graphics.moveTo(mouseX,mouseY); }else if(Zbt.selected == true) { bl1=mouseX; bl2=mouseY; } else if(Ybt.selected == true) { bl1=mouseX; bl2=mouseY; } stage.addEventListener(MouseEvent.MOUSE_MOVE,onMouseMoveHandler); } public function onMouseMoveHandler(e:MouseEvent):void { if(Xbt.selected == true) { sp1.graphics.lineStyle(3,secai,1,true); sp1.graphics.lineTo(mouseX,mouseY); zsp.addChild(sp1); addChild(zsp); }else if(Zbt.selected == true) { sp2.graphics.clear(); sp2.graphics.beginFill(secai,1); //sp.graphics.lineStyle(10,0x654235,0.8,true);//画线框…… sp2.graphics.drawRect(bl1,bl2,mouseX-bl1,mouseY-bl2); sp2.graphics.endFill(); zsp.addChild(sp2); addChild(zsp); }else if(Ybt.selected == true) { sp3.graphics.clear(); sp3.graphics.beginFill(secai,1); sp3.graphics.drawCircle(bl1,bl2,uint(Math.sqrt(((mouseX-bl1)*(mouseX-bl1) + (mouseY-bl2)*(mouseY-bl2))/2)));//画圆圈…… sp3.graphics.endFill(); zsp.addChild(sp3); addChild(zsp); } } public function onMouseUpHandler(e:MouseEvent):void { if(Xbt.selected == true) { var spx:Sprite=new Sprite(); spx.graphics.copyFrom(sp1.graphics); zsp.addChild(spx); addChild(zsp); sp1.graphics.clear(); }else if(Zbt.selected == true) { var spz:Sprite=new Sprite(); spz.graphics.copyFrom(sp2.graphics); zsp.addChild(spz); addChild(zsp); } else if(Ybt.selected == true) { var spy:Sprite=new Sprite(); spy.graphics.copyFrom(sp3.graphics); zsp.addChild(spy); addChild(zsp); } stage.removeEventListener(MouseEvent.MOUSE_MOVE,onMouseMoveHandler); } } }