美文网首页
laya ui 中已经处理了的那些事

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

作者: fat___lin | 来源:发表于2019-02-22 17:01 被阅读0次
    • 销毁组件时进行事件移除
    • UIGroup 对 ISelect 组件进行选中状态切换
    • List 中支持分页

    销毁时进行事件移除

    node.as :

            /**
             * <p>销毁此对象。destroy对象默认会把自己从父节点移除,并且清理自身引用关系,等待js自动垃圾回收机制回收。destroy后不能再使用。</p>
             * <p>destroy时会移除自身的事情监听,自身的timer监听,移除子对象及从父节点移除自己。</p>
             * @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.<ISelect>;
            /**@private */
            protected var _selectedIndex:int = -1;
    
             /**
             * 初始化项对象们。
             */
            public function initItems():void {
                _items || (_items = new Vector.<ISelect>());
                _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;
                }
            }
    

    相关文章

      网友评论

          本文标题:laya ui 中已经处理了的那些事

          本文链接:https://www.haomeiwen.com/subject/wfweyqtx.html