应用思考-教育技术论坛

标题: as3.0做画板如何实现按下直线按钮画直线按下圆按钮画圆代码 [打印本页]

作者: 你是我的牵挂    时间: 2014-11-1 21:51
标题: as3.0做画板如何实现按下直线按钮画直线按下圆按钮画圆代码
as3.0做画板如何实现按下直线按钮画直线按下圆按钮画圆代码
作者: etthink    时间: 2014-11-1 21:51
你是我的牵挂 发表于 2014-11-2 19:40

已经解决了前面的画圆的问题了: (, 下载次数: 86)

作者: etthink    时间: 2014-11-1 21:56
graphics类的使用,请提供自己做的源文件以供修改实现
作者: 你是我的牵挂    时间: 2014-11-1 21:59
a.addEventListener(MouseEvent.CLICK, doSomething);
b.addEventListener(MouseEvent.CLICK, doSomething);
c.addEventListener(MouseEvent.CLICK, doSomething);
function doSomething(evt:MouseEvent):void
{
        var huabu:Sprite=new Sprite();
        huabu.graphics.beginFill(0xFFFFFF);
        huabu.graphics.drawRect(20,20,510,360);
        huabu.graphics.endFill();
        addChild(huabu);
        var _drawing:Boolean;
        var quxian:Sprite=new Sprite();
        quxian.graphics.lineStyle( 2, 0xFF0000 );
        huabu.addChild(quxian);
        if (evt.currentTarget.name == "a")
        {




                _drawing = false;
                huabu.addEventListener( MouseEvent.MOUSE_DOWN, startDrawing );
                huabu.addEventListener( MouseEvent.MOUSE_MOVE,moving);
                //huabu.addEventListener( MouseEvent.MOUSE_UP, stopDrawing );
                stage.addEventListener(MouseEvent.MOUSE_UP,stopDrawing);
                function startDrawing( event:MouseEvent ):void
                {
                        quxian.graphics.moveTo( mouseX, mouseY );
                        _drawing = true;
                }
                function moving( event:MouseEvent ):void
                {
                        if (_drawing)
                        {
                                quxian.graphics.lineTo( mouseX, mouseY );
                        }
                }
                function stopDrawing( event:MouseEvent ):void
                {
                        _drawing = false;
                }


                trace("click button a");
        }
        else if (evt.currentTarget.name == "b")
        {




                var _color:Number = 0xFF0000;
                var zx:int = 1;
                var ys_x:Number;
                var ys_y:Number;
                huabu.addEventListener( MouseEvent.MOUSE_DOWN, yi );
                huabu.addEventListener( MouseEvent.MOUSE_MOVE,er);
                huabu.addEventListener( MouseEvent.MOUSE_UP, san );
                stage.addEventListener( MouseEvent.MOUSE_UP,san );
                function yi( event:MouseEvent ):void
                {
                        ys_x = mouseX;
                        ys_y = mouseY;
                        _drawing = true;
                }
                function er( event:MouseEvent ):void
                {
                        if (_drawing)
                        {
                                huabu.removeChild(quxian);
                                quxian=new Sprite();
                                quxian.graphics.lineStyle( zx, _color );
                                quxian.graphics.moveTo(ys_x,ys_y);
                                quxian.graphics.lineTo(mouseX,mouseY);
                                huabu.addChild(quxian);
                        }
                }
                function san( event:MouseEvent ):void
                {
                        quxian=new Sprite();
                        huabu.addChild(quxian);
                        //没有以上两句,只能画一条直线
                        _drawing = false;
                }


                trace("click button b");
        }
        else if (evt.currentTarget.name == "c")
        {


                var kaishi_x:Number;
                var kaishi_y:Number;
                var w:Number;
                var h:Number;
                var _max:Number;
                stage.addEventListener( MouseEvent.MOUSE_DOWN, star );
                stage.addEventListener( MouseEvent.MOUSE_MOVE,mov);
                stage.addEventListener( MouseEvent.MOUSE_UP, stopD );
                function star( event:MouseEvent ):void
                {
                        kaishi_x = mouseX;
                        kaishi_y = mouseY;
                        _drawing = true;
                }
                function mov( event:MouseEvent ):void
                {
                        if (_drawing)
                        {
                                w = mouseX - kaishi_x;
                                h = mouseY - kaishi_y;
                                removeChild(quxian);
                                quxian=new Sprite();
                                quxian.graphics.lineStyle( 2, 0xFF0000 );
                                quxian.graphics.drawEllipse(kaishi_x,kaishi_y,w,h);
                                addChild(quxian);
                        }
                }
                function stopD( event:MouseEvent ):void
                {
                        quxian=new Sprite();
                        addChild(quxian);
                        _drawing = false;
                }
                stage.focus = this;
                stage.addEventListener(KeyboardEvent.KEY_DOWN, shift);
                function shift(event:KeyboardEvent):void
                {
                        if (event.charCode == 0)
                        {
                                if (_drawing)
                                {
                                        w = mouseX - kaishi_x;
                                        h = mouseY - kaishi_y;
                                        _max = Math.max(Math.abs(w),Math.abs(h));
                                        if (w<0 && h<0)
                                        {
                                                w =  -  _max;
                                                h =  -  _max;
                                        }
                                        if (w>0 && h>0)
                                        {
                                                w = _max;
                                                h = _max;
                                        }
                                        if (w<0 && h>0)
                                        {
                                                w =  -  _max;
                                                h = _max;
                                        }
                                        if (w>0 && h<0)
                                        {
                                                w = _max;
                                                h =  -  _max;
                                        }
                                        removeChild(quxian);
                                        quxian=new Sprite();
                                        quxian.graphics.lineStyle( 2, 0xFF0000 );
                                        quxian.graphics.drawEllipse(kaishi_x,kaishi_y,w,h);
                                        addChild(quxian);
                                        _drawing = false;
                                }
                        }
                }

                trace("click button c");
        }
}
作者: 你是我的牵挂    时间: 2014-11-1 22:03
按下画圆按钮画圆再按下直线按钮圆也画上了不知什么原因,求您帮助解答
作者: etthink    时间: 2014-11-1 22:04
你是我的牵挂 发表于 2014-11-1 21:59
a.addEventListener(MouseEvent.CLICK, doSomething);
b.addEventListener(MouseEvent.CLICK, doSomething ...

源文件,fla文件,不是指代码



作者: 你是我的牵挂    时间: 2014-11-1 22:16
[attach]8132[/attach]

作者: 你是我的牵挂    时间: 2014-11-1 22:18
(, 下载次数: 86)



作者: 你是我的牵挂    时间: 2014-11-2 19:39
下载了别人的一段代码测试时出现这样的错误:
C:\Users\Administrator.CNN88-20140711E\Desktop\DrawTools.as,34 行        1119: 访问可能未定义的属性 buttonMode (通过 static 类型 flash.display:SimpleButton 引用)。
C:\Users\Administrator.CNN88-20140711E\Desktop\DrawTools.as,35 行        1119: 访问可能未定义的属性 buttonMode (通过 static 类型 flash.display:SimpleButton 引用)。
C:\Users\Administrator.CNN88-20140711E\Desktop\DrawTools.as,36 行        1119: 访问可能未定义的属性 buttonMode (通过 static 类型 flash.display:SimpleButton 引用)。
C:\Users\Administrator.CNN88-20140711E\Desktop\DrawTools.as,37 行        1119: 访问可能未定义的属性 buttonMode (通过 static 类型 flash.display:SimpleButton 引用)。
C:\Users\Administrator.CNN88-20140711E\Desktop\DrawTools.as,38 行        1119: 访问可能未定义的属性 buttonMode (通过 static 类型 flash.display:SimpleButton 引用)。
C:\Users\Administrator.CNN88-20140711E\Desktop\DrawTools.as,39 行        1119: 访问可能未定义的属性 buttonMode (通过 static 类型 flash.display:SimpleButton 引用)。
rgumentError: Error #1063: DrawTools() 的参数数量不匹配。应该有 1 个,当前为 0 个
  希望孙老师给改一改。

作者: 你是我的牵挂    时间: 2014-11-2 19:40
(, 下载次数: 88)



作者: etthink    时间: 2014-11-30 06:26
这个是没创建实例吧




欢迎光临 应用思考-教育技术论坛 (http://www.etthink.com/) Powered by Discuz! X3.4