zoukankan      html  css  js  c++  java
  • egret-皮肤

    皮肤分离概念

    egret的eui.Component通过皮肤分离,将单个组件分为逻辑组件和外观组件。新建一个类继承Component或其子类,然后设置该类的skinName属性,即可将皮肤绑定到逻辑组件。

    皮肤如何绑定组件

    • 新建一个exml皮肤文件,随便拖点控件进去。

    ​ 切换到源码模式:

    <?xml version='1.0' encoding='utf-8'?>
    <e:Skin class="TestSkin"
    	 width="100"
    	height="50" xmlns:e="http://ns.egret.com/eui" >
    	<e:Group id="myGroup" width="100" height="50" x="0" y="0">
    		<e:Image id="imgDown" left="0" right="0" top="0" bottom="0" source="button_down_png" scale9Grid="5,5,6,6" x="-18" y="-166" scaleX="1" scaleY="1"/>
    		<e:Image id="up" left="0" right="0" top="0" bottom="0" source="button_up_png" scale9Grid="5,5,6,6"/>
    		<e:Label id="lblDesc" text="hello" verticalCenter="0" horizontalCenter="0"/>
    	</e:Group>
    </e:Skin>
    

    最外层标签<e:Skin class="TestSkin"> .... </e:Skin>,egret解析这个文件时会创建一个TestSkin类,这个类继承Skin

    • 新建一个类TestComponent继承eui.Component,设置该类的属性skinName为皮肤文件。
    class TestComponent extends eui.Component {
    
        public imgDown: eui.Image;
        public lblDesc: eui.Label;
        constructor() {
            super();
            this.addEventListener(eui.UIEvent.COMPLETE,this.onComplete,this);
            this.skinName = "resource/skins/TestSkin.exml";
        }
        protected createChildren() {
            super.createChildren();
            console.log("createChildren")
            console.log(this.lblDesc.text);
        }
        private onComplete():void{
            console.log("onComplete");
        }
    }
    

    egret会将TestSkin下的控件添加到TestComponent组件下,作为他的子节点。即TestComponent下的节点树为以下状态:

    • TestComponent
      • Group
        • Image
        • Image
        • Lable

    皮肤部件

    组件类定义的属性名和皮肤控件的ID值一样时可以在代码里直接引用控件。

    TestComponent上定义了一个lblDesc的公开变量,TestSkin里也有一个id为lblDesc的Label节点,在皮肤附加到逻辑组件上时,会自动匹配双方的同名变量和id,这些同名变量就叫做“皮肤部件”(SkinPart),例如负责显示文本标签的lblDesc对象,匹配结果就是把TestSkin上的Label节点引用赋值给了TestComponent.lblDesc属性。正是因为这个皮肤部件的自动匹配功能,在按钮初始化完成后,才可以直接访问this.lblDesc属性。逻辑组件就是通过定义皮肤部件对皮肤里的子节点进行操作的。

  • 相关阅读:
    [复变函数]第07堂课 2.2 初等解析函数
    [家里蹲大学数学杂志]第237期Euler公式的美
    [家里蹲大学数学杂志]第287期复变函数讲义
    [家里蹲大学数学杂志]第253期实变函数讲义
    模仿王者荣耀的实时阴影
    Android 识别身份证号码(图片识别)
    基于swiper的移动端H5页面,丰富的动画效果
    基于skitter的轮播图炫酷效果,幻灯片的体验
    基于canvas的原生JS时钟效果
    .net core 实现简单爬虫—抓取博客园的博文列表
  • 原文地址:https://www.cnblogs.com/bing6868/p/14016792.html
Copyright © 2011-2022 走看看