[Egret学习笔记 六]GUI DataGroup和ArrayCollection的使用

1.定义一个ArrayCollection 作为DataGroup的数据源
2.建立一个LabelItemRender的组件 继承了ItemRender类
module uiComponent{

    export class LabelItemRender extends egret.gui.ItemRenderer{

        public constructor(){
            super();
        }

        //当数据发生改变时
        public dataChanged():void{

            this.labelDisplay.text = this.data.label; //显示一个对象的label属性值
        }
    }
}
3.为该ItemRender建一个皮肤LabelItemRenderSkin 该Skin为exml,建立在src/skins/mySkin目录下
<e:Skin xmlns:e="http://ns.egret-labs.org/egret" xmlns:w="http://ns.egret-labs.org/wing" width="100" height="50">

<e:states>
    <e:State name="up"/>
    <e:State name="down"/>
    <e:State name="disabled"/>
</e:states>
    <e:UIAsset width="100%" height="100%"
               source.up="button_normal_png"
               source.down="button_down_png"
               source.disabled="button_disabled_png" />
    <e:Label id="labelDisplay" size="24" fontFamily="Tahoma"
             width="100%" height="100%"
             textColor="0x111111"
             textColor.down="0xffffff"
             textColor.disabled="0xcccccc"
             verticalAlign="middle"
             textAlign="center"/>
</e:Skin>

4.源码实现
//数据源
var dataCollection = new egret.gui.ArrayCollection();
dataCollection.addItem({label:"选项1"});
dataCollection.addItem({label:"选项2"});

var dataGroup = new egret.gui.DataGroup();
dataGroup.itemRenderer = new egret.gui.ClassFactory(uiComponent.LabelItemRender); //设置ItemRender,利用工厂类实例化一个Class
dataGroup.itemRendererSkinName = "skins.mySkin.LabelItemRenderSkin";//设置皮肤
dataGroup.dataProvider = dataCollection;

dataGroup.verticalCenter = 0;
dataGroup.horizontalCenter = 0;

var layout:egret.gui.VerticalLayout = new egret.gui.VerticalLayout();
layout.gap = 10;
dataGroup.layout = layout;

this.guiLayer.addElement(dataGroup);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值