命运践踏win

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

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);
            
        }
                
    }
    
}
posted on 2012-10-28 20:58  命运践踏win  阅读(193)  评论(0编辑  收藏  举报