dataevent.as

来自「用于flash/flex的 as3的 2D图形图像图表的动态生成」· AS 代码 · 共 78 行

AS
78
字号
package flare.vis.events
{
	import flare.vis.data.DataList;
	import flare.vis.data.DataSprite;
	import flare.vis.data.EdgeSprite;
	import flare.vis.data.NodeSprite;
	
	import flash.events.Event;
	
	/**
	 * Event fired when a data collection is modified.
	 */
	public class DataEvent extends Event
	{
		/** A data added event. */
		public static const ADD:String    = "add";
		/** A data removed event. */
		public static const REMOVE:String = "remove";
		/** A data updated event. */
		public static const UPDATE:String = "update";
		
		/** @private */
		protected var _items:Array;
		/** @private */
		protected var _item:Object;
		/** @private */
		private var _list:DataList;
		
		/** The number of items in this data event. */
		public function get length():int {
			return _items ? _items.length : 1;
		}
		
		/** The list of effected data items. */
		public function get items():Array {
			if (_items == null) _items = [_item];
			return _items;
		}
		
		/** The data list (if any) the items belong to. */
		public function get list():DataList { return _list; }
		
		/** The first element in the event list as an Object. */
		public function get object():Object { return _item; }
		/** The first element in the event list as a DataSprite. */
		public function get item():DataSprite { return _item as DataSprite; }
		/** The first element in the event list as a NodeSprite. */
		public function get node():NodeSprite { return _item as NodeSprite; }
		/** The first element in the event list as an EdgeSprite. */
		public function get edge():EdgeSprite { return _item as EdgeSprite; }
		
		/**
		 * Creates a new DataEvent.
		 * @param type the event type (ADD, REMOVE, or UPDATE)
		 * @param items the DataSprite(s) that were added, removed, or updated
		 * @param list (optional) the data list that was modified
		 */
		public function DataEvent(type:String, items:*, list:DataList=null)
		{
			super(type, false, true);
			if (items is Array) {
				_items = items;
				_item = _items[0];
			} else {
				_items = null;
				_item = items;
			}
			_list = list;
		}
		
		/** @inheritDoc */
		public override function clone():Event
		{
			return new DataEvent(type, _items?_items:_item, _list);
		}
		
	} // end of class DataEvent
}

⌨️ 快捷键说明

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