laya|laya ui 中已经处理了的那些事

  • 销毁组件时进行事件移除
  • UIGroup 对 ISelect 组件进行选中状态切换
  • List 中支持分页
销毁时进行事件移除
node.as :
/** * 销毁此对象。destroy对象默认会把自己从父节点移除,并且清理自身引用关系,等待js自动垃圾回收机制回收。destroy后不能再使用。
* 【laya|laya ui 中已经处理了的那些事】destroy时会移除自身的事情监听,自身的timer监听,移除子对象及从父节点移除自己。
* @param destroyChild(可选)是否同时销毁子节点,若值为true,则销毁子节点,否则不销毁子节点。 */ public function destroy(destroyChild:Boolean = true):void { _destroyed = true; this._parent && this._parent.removeChild(this); //销毁子节点 if (_childs) { if (destroyChild) destroyChildren(); else this.removeChildren(); }this._childs = null; this._$P = null; //移除所有事件监听 this.offAll(); //移除所有timer this.timer.clearAll(this); }

对ISelect组件进行选中状态切换
UIGroup.as :
/**@private */ protected var _items:Vector.; /**@private */ protected var _selectedIndex:int = -1; /** * 初始化项对象们。 */ public function initItems():void { _items || (_items = new Vector.()); _items.length = 0; for (var i:int = 0; i < 10000; i++) { var item:ISelect = getChildByName("item" + i) as ISelect; if (item == null) break; _items.push(item); item.selected = (i === _selectedIndex); item.clickHandler = Handler.create(this, itemClick, [i], false); } }/** * @private * 项对象的点击事件侦听处理函数。 * @param index 项索引。 */ protected function itemClick(index:int):void { selectedIndex = index; }

List 中支持分页
List.as :
/**最大分页数。*/ public var totalPage:int = 0; /** * 列表的当前页码。 */ public function get page():int { return _page; }public function set page(value:int):void { _page = value if (_array) { _page = value > 0 ? value : 0; _page = _page < totalPage ? _page : totalPage - 1; startIndex = _page * repeatX * repeatY; } }

    推荐阅读