制作Slider组件的些许性能改善

代码是横向Slider组件的基本代码,注意onMouseMove函数部分。

在计算Rectangle的时候,对于高度,可以计算,也可以设置为0。代码执行效果完全一样。

由于少了一步的计算,对改善性能有些许贡献。

package {
	import com.bit101.components.List;
	import flash.display.Sprite;
	import flash.display.StageAlign;
	import flash.display.StageScaleMode;	
	import flash.events.MouseEvent;
	import flash.geom.Rectangle;
	public class test1 extends Sprite {
		
		private var a:Sprite;
		private var b:Sprite;
		
		public function test1() {
			//设置舞台与浏览器的相对位置
			stage.align = StageAlign.TOP_LEFT;
			//设置舞台是否随浏览器尺寸缩放:不缩放
			stage.scaleMode = StageScaleMode.NO_SCALE;
			
			a = new Sprite();
			a.graphics.beginFill(0x000000);
			a.graphics.drawRect(0, 0, 100, 20);
			a.graphics.endFill();
			a.x = 100;
			a.y = 100;
			addChild(a);
			
			b = new Sprite();
			b.graphics.beginFill(0x0000ff);
			b.graphics.drawRect(0, 0, 20, 20);
			b.graphics.endFill();
			b.x = 100;
			b.y = 100;
			addChild(b);
			
			b.addEventListener(MouseEvent.MOUSE_DOWN,onMouseDown);
		}
		
		private function onMouseDown(e:MouseEvent):void
		{
			stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);
			stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUp);			
		}
		
		private function onMouseMove(e:MouseEvent):void
		{
			var rec:Rectangle = new Rectangle(a.x,
				                              a.y,
											  a.width - b.width,
											  a.height - b.height);
											  
			//var rec:Rectangle = new Rectangle(a.x,
				                              //a.y,
											  //a.width - b.width,
											  //0);
			b.startDrag(false, rec);			
		}

		private function onMouseUp(e:MouseEvent):void
		{
			stage.removeEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);
			stage.removeEventListener(MouseEvent.MOUSE_UP, onMouseUp);	
			b.stopDrag();
		}

		
	}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值