⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rectsprite.as

📁 用于flash/flex的 as3的 2D图形图像图表的动态生成
💻 AS
字号:
package flare.display
{
	import flare.util.Colors;
	
	/**
	 * A Sprite representing a rectangle shape. Supports line and fill colors
	 * and rounded corners.
	 */
	public class RectSprite extends DirtySprite
	{
		/** @private */
		protected var _w:Number;
		/** @private */
		protected var _h:Number;
		/** @private */
		protected var _cw:Number = 0;
		/** @private */
		protected var _ch:Number = 0;
		/** @private */
		protected var _fillColor:uint = 0x00ffffff;
		/** @private */
		protected var _lineColor:uint = 0xffaaaaaa;
		/** @private */
		protected var _lineWidth:Number = 0;
		/** @private */
		protected var _pixelHinting:Boolean = true;
		
		/** The width of the rectangle. */
		public function get w():Number { return _w; }
		public function set w(v:Number):void { _w = v; dirty(); }
		
		/** The height of the rectangle. */
		public function get h():Number { return _h; }
		public function set h(v:Number):void { _h = v; dirty(); }
		
		/** The width of rounded corners. Zero indicates no rounding. */
		public function get cornerWidth():Number { return _cw; }
		public function set cornerWidth(v:Number):void { _cw = v; dirty(); }
		
		/** The height of rounded corners. Zero indicates no rounding. */
		public function get cornerHeight():Number { return _ch; }
		public function set cornerHeight(v:Number):void { _ch = v; dirty(); }
		
		/** Sets corner width and height simultaneously. */
		public function set cornerSize(v:Number):void { _cw = _ch = v; dirty(); }
		
		/** The fill color of the rectangle. */
		public function get fillColor():uint { return _fillColor; }
		public function set fillColor(c:uint):void { _fillColor = c; dirty(); }
		
		/** The line color of the rectangle outline. */
		public function get lineColor():uint { return _lineColor; }
		public function set lineColor(c:uint):void { _lineColor = c; dirty(); }
		
		/** The line width of the rectangle outline. */
		public function get lineWidth():Number { return _lineWidth; }
		public function set lineWidth(v:Number):void { _lineWidth = v; dirty(); }
		
		/** Flag indicating if pixel hinting should be used for the outline. */
		public function get linePixelHinting():Boolean { return _pixelHinting; }
		public function set linePixelHinting(b:Boolean):void {
			_pixelHinting = b; dirty();
		}
				
		/**
		 * Creates a new RectSprite.
		 * @param x the x-coordinate of the top-left corner of the rectangle
		 * @param y the y-coordinate of the top-left corder of the rectangle
		 * @param w the width of the rectangle
		 * @param h the height of the rectangle
		 * @param cw the width of rounded corners (zero for no rounding)
		 * @param ch the height of rounded corners (zero for no rounding)
		 */
		public function RectSprite(x:Number=0, y:Number=0, w:Number=0,
			h:Number=0, cw:Number=0, ch:Number=0)
		{
			this.x = x;
			this.y = y;
			this._w = w;
			this._h = h;
			this._cw = cw;
			this._ch = ch;
		}
		
		/** @inheritDoc */
		public override function render():void
		{
			graphics.clear();
			if (isNaN(_w) || isNaN(_h)) return;
			
			var la:Number = Colors.a(_lineColor) / 255;
			var fa:Number = Colors.a(_fillColor) / 255;
			var lc:uint = _lineColor & 0x00ffffff;
			var fc:uint = _fillColor & 0x00ffffff;

			if (la>0) graphics.lineStyle(_lineWidth, lc, la, _pixelHinting);
			graphics.beginFill(fc, fa);
			if (_cw > 0 || _ch > 0) {
				graphics.drawRoundRect(0, 0, _w, _h, _cw, _ch);
			} else {
				graphics.drawRect(0, 0, _w, _h);
			}
			graphics.endFill();
		}
		
	} // end of class RectSprite
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -