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;
}
}
推荐阅读
- 热闹中的孤独
- Shell-Bash变量与运算符
- JS中的各种宽高度定义及其应用
- 2021-02-17|2021-02-17 小儿按摩膻中穴-舒缓咳嗽
- 深入理解Go之generate
- 一粒饥饿不堪的米
- 异地恋中,逐渐适应一个人到底意味着什么()
- 我眼中的佛系经纪人
- 《魔法科高中的劣等生》第26卷(Invasion篇)发售
- “成长”读书社群招募