flex画线注意事项及画网格线

一、画线注意事项

1.画出的线要显示在界面上,因此线要继承UIComponent,主要是使用它的画布对象即this.graphics

2.画线只适合于绝对布局,不能用于相对布局,否则画出来就乱七八糟,或者看不见,因为如果用布局组件如HGroup和VGroup,那么组件就只能横或竖着放

 

二。画网格线

   网格线就是由横线和竖线组成,因此思路就是先画个矩形,然后就画横线 再画竖线,

参考代码(CommonUtil.as):

		/**
		 * 将画图区域用网格填充,drawCenter为UIComponet的子类
		 */ 
		public static function initLine(drawCenter:UIComponent):void
		{
			var grapWidth: Number = 15;
			//清除由drawCenter的画布graphi所产生过的图像
			drawCenter.graphics.clear();
			//填充背景
			drawCenter.graphics.beginFill(0xFFFFFF);
			/*drawCenter.graphics.beginFill(0x959595);*/
			drawCenter.graphics.drawRect(0, 0, drawCenter.width, drawCenter.height);
			drawCenter.graphics.endFill();
			
			drawCenter.graphics.lineStyle(1, 0xBBBBBB);
			//画横线
			var i : int = 0;
			var totalLength: Number = 0;
			while(totalLength <= drawCenter.height){
				drawCenter.graphics.moveTo(0, grapWidth * i);
				drawCenter.graphics.lineTo(drawCenter.width, grapWidth * i);
				i++;
				totalLength = grapWidth * i;
			}
			
			//变量清零
			totalLength = 0;
			i = 0;
			
			//画竖线
			while(totalLength <= drawCenter.width){
				drawCenter.graphics.moveTo(grapWidth * i, 0);
				drawCenter.graphics.lineTo(grapWidth * i, drawCenter.height );
				totalLength = grapWidth * i;
				i ++;
			}
		}
 使用(添加resize事件,resize事件就是当组件大小发生改变时调用,第一次创建设置width和高度时也会调用,因此我们可以利用 resize事件来做页面的自适应):

                <s:BorderContainer id="drawCenter" width="100%" height="100%"
                                           mouseMove="drawCenter_mouseMoveHandler(event)"
                                           mouseUp="drawCenter_mouseUpHandler(event)"
                                           resize="drawCenter_resizeHandler(event)"
                                           backgroundColor="#74556B"
                                           dropShadowVisible="true" borderWeight="3" cornerRadius="0"
                                           borderAlpha="1.0" backgroundAlpha="0.3">

            /**
             * 当画图区域大小发生改变时,重新绘制网格线(自适应)
             */
            protected function drawCenter_resizeHandler(event:ResizeEvent):void
            {
                //将画图区域用网格填充
                CommonUtil.initLine(this.drawCenter);
            }
 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值