再学AS3(五):鼠绘.docx_第1页
再学AS3(五):鼠绘.docx_第2页
再学AS3(五):鼠绘.docx_第3页
再学AS3(五):鼠绘.docx_第4页
再学AS3(五):鼠绘.docx_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

再学AS3(五):鼠绘知识点:1、添加鼠标监听事件MouseEvent;2、规定画布大小;3、moveTo和lineTo;4、绘制开始与结束判断。代码: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); _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; (2):直线知识点:1、添加鼠标监听事件MouseEvent;2、规定画布大小;3、moveTo和lineTo;4、绘制开始与结束判断。难点:绘制多条直线代码:var huabu:Sprite=new Sprite(); huabu.graphics.beginFill(0xFFFFFF); huabu.graphics.drawRect(20,20,510,360); huabu.graphics.endFill(); addChild(huabu); var _drawing:Boolean=false; var zhixian:Sprite=new Sprite(); huabu.addChild(zhixian); var _color:Number=0xFF0000; var zx:int=1; var ys_x:Number; var ys_y:Number; 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 ys_x=mouseX; ys_y=mouseY; _drawing = true; function moving( event:MouseEvent ):void if (_drawing) huabu.removeChild(zhixian); zhixian=new Sprite(); zhixian.graphics.lineStyle( zx, _color ); zhixian.graphics.moveTo(ys_x,ys_y); zhixian.graphics.lineTo(mouseX,mouseY); huabu.addChild(zhixian); function stopDrawing( event:MouseEvent ):void zhixian=new Sprite(); huabu.addChild(zhixian); /没有以上两句,只能画一条直线 _drawing = false; (3):圆知识点:1、添加鼠标监听事件MouseEvent;2、绘制过程中显示半径(两点间的距离Point.distance(坐标1,坐标2));3、drawCircle、moveTo和lineTo;4、绘制开始与结束判断。难点:绘制多个圆代码:var _drawing:Boolean; var yuan:Sprite=new Sprite(); addChild(yuan); var banjing:Sprite=new Sprite(); addChild(banjing); var yuanxin_x:Number; var yuanxin_y:Number; var zuobiao1:Point; var zuobiao2:Point; var bj:Number; _drawing = false; stage.addEventListener( MouseEvent.MOUSE_DOWN, startDrawing ); stage.addEventListener( MouseEvent.MOUSE_MOVE,yd); stage.addEventListener( MouseEvent.MOUSE_UP, stopDrawing ); function startDrawing( event:MouseEvent ):void yuanxin_x=mouseX;/鼠标按下的位置就是圆心的位置 yuanxin_y=mouseY; _drawing = true; function yd( event:MouseEvent ):void if ( _drawing ) zuobiao1 = new Point(yuanxin_x,yuanxin_y); zuobiao2 = new Point(mouseX, mouseY); bj= Point.distance(zuobiao1, zuobiao2);/显示两点之间的距离即为半径 removeChild(yuan); yuan=new Sprite(); yuan.graphics.lineStyle( 2, 0xFF0000 ); yuan.graphics.drawCircle(yuanxin_x,yuanxin_y,bj); addChild(yuan); removeChild(banjing); banjing=new Sprite(); banjing.graphics.lineStyle(2,0xFF0000,0.5); banjing.graphics.moveTo(yuanxin_x,yuanxin_y); banjing.graphics.lineTo(mouseX,mouseY); addChild(banjing); function stopDrawing( event:MouseEvent ):void removeChild(banjing);/绘制结束时半径线消失 banjing=new Sprite();/每次画圆过程中都显示半径 addChild(banjing); yuan=new Sprite();/可绘制多个圆 addChild(yuan); _drawing = false; (4):椭圆知识点:1、添加鼠标监听事件MouseEvent和键盘监听事件KeyboardEvent;2、椭圆的宽与高;3、drawEllipse;4、绘制开始与结束判断;5、按下Shift键绘制正圆。难点:按下Shift键绘制正圆代码:var _drawing:Boolean=false; var ellipse:Sprite=new Sprite(); addChild(ellipse); var kaishi_x:Number; var kaishi_y:Number; var w:Number; var h:Number; var _max:Number; stage.addEventListener( MouseEvent.MOUSE_DOWN, startDrawing ); stage.addEventListener( MouseEvent.MOUSE_MOVE,moving); stage.addEventListener( MouseEvent.MOUSE_UP, stopDrawing ); function startDrawing( event:MouseEvent ):void kaishi_x=mouseX; kaishi_y=mouseY; _drawing = true; function moving( event:MouseEvent ):void if (_drawing) w=mouseX-kaishi_x; h=mouseY-kaishi_y; removeChild(ellipse); ellipse=new Sprite(); ellipse.graphics.lineStyle( 2, 0xFF0000 ); ellipse.graphics.drawEllipse(kaishi_x,kaishi_y,w,h); addChild(ellipse); function stopDrawing( event:MouseEvent ):void ellipse=new Sprite(); addChild(ellipse); _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 (w0 & h0 & h0) w=_max; h=_max; if (w0) w=-_max; h=_max; if (w0 & h0) w=_max; h=-_max; removeChild(ellipse); ellipse=new Sprite(); ellipse.graphics.lineStyle( 2, 0xFF0000 ); ellipse.graphics.drawEllipse(kaishi_x,kaishi_y,w,h); addChild(ellipse); (5):矩形知识点:1、添加鼠标监听事件MouseEvent和键盘监听事件KeyboardEvent;2、椭圆的宽与高;3、drawRect;4、绘制开始与结束判断;5、按下Shift键绘制正方形。难点:按下Shift键绘制正方形代码:var _drawing:Boolean=false; var _drawrect:Sprite=new Sprite(); addChild(_drawrect); var yx_x:Number; var yx_y:Number; var w:Number; var h:Number; var _max:Number; stage.addEventListener( MouseEvent.MOUSE_DOWN, startDrawing ); stage.addEventListener( MouseEvent.MOUSE_MOVE,moving); stage.addEventListener( MouseEvent.MOUSE_UP, stopDrawing ); function startDrawing( event:MouseEvent ):void yx_x=mouseX; yx_y=mouseY; _drawing = true; function moving( event:MouseEvent ):void if (_drawing) w=mouseX-yx_x; h=mouseY-yx_y; removeChild(_drawrect); _drawrect=new Sprite(); _drawrect.graphics.lineStyle( 2, 0xFF0000 ); _dra

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论