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

📄 isa.as

📁 用于flash/flex的 as3的 2D图形图像图表的动态生成
💻 AS
字号:
package flare.query
{
	/**
	 * Expression operator that type checks a sub-expression.
	 */
	public class IsA extends Expression
	{
		private var _type:Class;
		private var _clause:Expression;
		
		/** The class type to check for. */
		public function get type():Class { return _type; }
		
		/** The sub-expression clause to type check. */
		public function get clause():Expression { return _clause; }
		public function set clause(e:*):void {
			_clause = e==null ? null : Expression.expr(e);
		}
		
		/**
		 * @inheritDoc
		 */
		public override function get numChildren():int { return _clause ? 1 : 0; }
		
		/**
		 * Creates a new IsA operator. 
		 * @param type the class type to check for
		 * @param clause the sub-expression clause to type check. If null,
		 *  the input object (rather than a sub-property or expression result)
		 *  will be type checked.
		 */
		public function IsA(type:Class, clause:*=null) {
			_type = type;
			this.clause = clause;
		}
		
		/**
		 * @inheritDoc
		 */
		public override function clone():Expression
		{
			return new IsA(_type, _clause.clone());
		}
		
		/**
		 * @inheritDoc
		 */
		public override function eval(o:Object=null):*
		{
			return predicate(o);
		}
		
		/**
		 * @inheritDoc
		 */
		public override function predicate(o:Object):Boolean
		{
			if (_clause) {
				return _clause.eval(o) is _type;
			} else {
				return o is _type;
			}
		}
		
		/**
		 * @inheritDoc
		 */
		public override function getChildAt(idx:int):Expression
		{
			return (idx==0 ? _clause : null);
		}
		
		/**
		 * @inheritDoc
		 */
		public override function setChildAt(idx:int, expr:Expression):Boolean
		{
			if (idx == 0) {
				_clause = expr;
				return true;
			}
			return false;
		}
		
		/**
		 * @inheritDoc
		 */
		public override function toString():String
		{
			var c:String = _clause ? _clause.toString() : "<object>";
			return "("+c + " IS " + _type.toString()+")";
		}
		
	} // end of class IsA
}

⌨️ 快捷键说明

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