加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Flex示例:实现画线

发布时间:2020-12-15 03:52:22 所属栏目:百科 来源:网络整理
导读:http://blog.csdn.net/hnuyangyi/article/details/5929116 ?xml version="1.0" encoding="utf-8"? mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="drawInit()" layout="vertical" mx:Style Application { fontSize: 12pt;} /m

http://blog.csdn.net/hnuyangyi/article/details/5929116



<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="drawInit()" layout="vertical"> <mx:Style> Application { fontSize: 12pt;} </mx:Style> <mx:Script> <!--[CDATA[ import mx.core.UIComponent; import mx.controls.Alert; private var shape:String; private var flag:Boolean; private var sx:Number; private var sy:Number; private var ex:Number; private var ey:Number; private var sprite:Sprite; private var uic:UIComponent; private var i:int; private var arr:Array=new Array(); /** * 初始化 * */ private function drawInit():void { myCanvas.addEventListener(MouseEvent.MOUSE_DOWN,onMouseDown); myCanvas.addEventListener(MouseEvent.MOUSE_MOVE,onMouseMove); myCanvas.addEventListener(MouseEvent.MOUSE_UP,onMouseUp); } private function onMouseDown(e:MouseEvent):void { flag=true; sx=myCanvas.mouseX; sy=myCanvas.mouseY; sprite=new Sprite(); uic=new UIComponent(); myCanvas.addChildAt(uic,i++); uic.addChild(sprite); } private function onMouseMove(e:MouseEvent):void { if (flag) { draw(shape); } } private function onMouseUp(e:MouseEvent):void { flag=false; } private function setShape(str:String):void { shape=str; } /** * 画线 * */ private function draw(s:String):void { ex=myCanvas.mouseX; ey=myCanvas.mouseY; if (s == "line") { sprite.graphics.clear(); //清除 sprite.graphics.lineStyle(hs.value,cp.selectedColor); //设置样式 sprite.graphics.moveTo(sx,sy); //开始坐标 sprite.graphics.lineTo(ex,ey); //移动坐标 } } /** * 撤销 * */ private function undo():void { if (i <= 0) { return; } //放入撤销集合 arr.push(myCanvas.getChildAt(--i)); //添加元素到最后 ,unshift添加元素到最前 myCanvas.removeChildAt(i); } /** * 重做 * */ private function redo():void { if (arr.length <= 0) { return; } //从撤销集合取出 myCanvas.addChildAt(UIComponent(arr.pop()),i++); //arr.pop()表示删除最后一个,并返回 ,shift表示删除第一个元素,并返回 } ]]--> </mx:Script> <mx:TabNavigator width="768" height="401"> <mx:VBox label="FLEX画图" width="100%" height="100%"> <mx:Canvas width="100%" ? height="315" ? id="myCanvas" ? backgroundColor="#006699"> </mx:Canvas> <mx:HBox width="100%" height="44" verticalAlign="middle"> <mx:Button label="画直线" ? click="setShape('line')"/> <mx:Button label="撤销" ? click="undo()"/> <mx:Button label="重做" ? click="redo()"/> <mx:HSlider id="hs" value="3"/> <mx:ColorPicker id="cp" selectedColor="red"/> <mx:Button label="清屏" ? click="myCanvas.removeAllChildren();i=0"/> </mx:HBox> </mx:VBox> </mx:TabNavigator> </mx:Application>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读