• flex 拖动进度条


    package 
    {
    	/**
    	 * 
    	 * @author 	
    	 * @date 		2010-6-23
    	 * @description 拖动进度条
    	 * @demo		<ns:ProgressBarSlider id="pbs"
    	 *					    width="200"
    	 *					    value="50"
    	 *					    maximum="50"
    	 *					    minimum="0"
    	 *					    snapInterval="10"
    	 *					    themeColor="#F20D7A"/>
    	 * 
    	 **/
    	 
    	import flash.display.DisplayObject;
    	import flash.events.Event;
    	
    	import mx.containers.Canvas;
    	import mx.controls.HSlider;
    	import mx.controls.ProgressBar;
    	import mx.controls.ProgressBarMode;
    	import mx.controls.sliderClasses.Slider;
    	import mx.events.SliderEvent;
    	[Style(name="themeColor", type="uint", format="Color", inherit="yes")]
    	public class ProgressBarSlider extends Canvas
    	{
    		private var progressBar:ProgressBar;
    		private var silder:HSlider;
    		
    		private var _value:Number=0;
    		private var _maximum:Number=100;
    		private var _minimum:Number=0;
    		private var _snapInterval : Number = 1;
    
    		[Bindable("change")]
    		/**
    		 *  Read-only property that contains the amount of progress
    		 *  that has been made - between the minimum and maximum values.
    		 */
    		public function get value():Number
    		{
    			return _value;
    		}		
    		
    		public function set value(value : Number) : void
    		{
    			_value = value;
    			progressBar.setProgress(value,maximum);
    			silder.value = 50;
    		}
    
    		[Inspectable(category="General", defaultValue="100")]
    		public function get maximum():Number
    		{
    			return _maximum;
    		}
    		
    		public function set maximum(value:Number):void
    		{
    			if (!isNaN(value) && value != _maximum)
    			{
    				progressBar.maximum = value;
    				silder.maximum = value;
    			}
    		}
    		
    		//  minimum
    		[Inspectable(category="General", defaultValue="0")]		
    		public function get minimum() : Number
    		{
    			return _minimum;
    		}
    		
    		public function set minimum(value:Number):void
    		{
    			if (!isNaN(value) && value != _minimum)
    			{
    				progressBar.minimum = value;
    				silder.minimum = value;
    			}
    		}
    		
    		//步进
    		public function get snapInterval():Number
    		{
    			return _snapInterval;
    		}
    
    		public function set snapInterval(value:Number):void
    		{
    			_snapInterval=value;
    			silder.snapInterval = value;
    		}
    
    		public function ProgressBarSlider()
    		{
    			progressBar = new ProgressBar();			
    			silder = new HSlider();	
    			width=100;				
    		}
    		
    		override protected function createChildren():void
    		{
    			super.createChildren();
    			
    			progressBar.x = 0;
    			progressBar.y = 0;
    			progressBar.minimum = minimum;
    			progressBar.maximum = maximum;
    			progressBar.mode = ProgressBarMode.MANUAL;
    			progressBar.labelPlacement = ProgressBarLabelPlacement.CENTER;			
    			progressBar.width = width;	
    			progressBar.label = getProgress();
    			progressBar.setProgress(value,maximum);		
    			
    			silder.x = 0;
    			silder.y = 10;
    			silder.minimum = minimum;
    			silder.maximum = maximum;
    			silder.width = width;
    			silder.snapInterval = snapInterval;
    			silder.value = value;
    			silder.addEventListener(SliderEvent.CHANGE,doSilderChange);	
    				
    			addChild(progressBar);	
    			addChild(silder);
    		}
    		
    		private function doSilderChange(e : SliderEvent) : void
    		{
    			progressBar.setProgress(e.value, maximum);
    			progressBar.label = getProgress();
    			_value = e.value;
    			dispatchEvent(new Event("change"));
    		}
    		
    		private function getProgress() : String
    		{
    			return Math.ceil(silder.value / maximum * 100) + "%";
    		}
    		
    		override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
    		{
    			super.updateDisplayList(unscaledWidth,unscaledHeight);  
    			silder.width = width;
    			progressBar.width = width;
    		}		
    	}
    }
    
  • 相关阅读:
    java语法基础
    向linux内核增加一个系统调用-1
    dp-矩阵连乘
    struct和typedef struct
    Ubuntu安装Chrome及hosts修改
    c++primer-p100.用迭代器进行二分法搜索
    c++primer-p101.ex3.24
    c++ vector用法和迭代器
    Bytes和bits的区别(字节和位的区别)
    基于R语言的数据分析和挖掘方法总结——中位数检验
  • 原文地址:https://www.cnblogs.com/warrior/p/1763689.html
Copyright © 2020-2023  润新知