吾知网

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 7872|回复: 0
打印 上一主题 下一主题

Theme皮肤文件(json解析、多文件管理)

[复制链接]
跳转到指定楼层
楼主
发表于 2018-8-3 11:16:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

一  官方教程

http://developer.egret.com/cn/github/egret-docs/extension/EUI/skin/theme/index.html

 

二 thm主题文件解析

default.thm.json皮肤主题文件范例:

复制代码
{
  "skins": {
    "eui.Button": "resource/eui_skins/ButtonSkin.exml"
  },
  "autoGenerateExmlsList": false,
  "exmls": [
    "src/HomeSceneSkin.exml"
  ]
}
复制代码

 skins:

 将exml和ts绑定。

如果绑定,则在新建eui.component不需要设置skinName了。

如果没有绑定,则需要在eui.component的contruct中设置this.skinName = ""。

 

autoGenerateExmlsList
true:发布时将exmls下皮肤自动合并到default.thm.json文件中
false:不会将exmls下的皮肤自动合并到default.thm.json文件中

exmls:
在Main.ts加载主题文件时,预加载exmls列表中的皮肤
let theme = new eui.Theme("resource/default.thm.json", this.stage);

三 exml的几种使用方式:

1 直接引用

public constructor() {
    super();
    this.addEventListener(egret.Event.COMPLETE, this.onComplete, this);
    this.addEventListener(egret.Event.ADDED_TO_STAGE, this.onAddToStage, this);
    this.skinName = "src/HomeSceneSkin.exml";
}

执行顺序。在exml未预先加载的情况下,实时加载。

chilrenCreated 

addToStage

exml加载完成

onComplete

 

2 其他方式不怎么用。。具体看官方教程

 

 

四  皮肤多文件管理

多个json皮肤文件,分类加载不同皮肤,减轻一次性加载大量皮肤解析压力。

需要自己管理exml的加载顺序,因为exml之间可能有依赖关系。

let theme = new eui.Theme("resource/default.thm.json", this.stage);
let theme2 = new eui.Theme("resource/default2.thm.json",this.stage);
theme2.addEventListener(eui.UIEvent.COMPLETE, this.onThemeLoadComplete, this);

 

default.thm.json
复制代码
{
  "skins": {
  },
  "autoGenerateExmlsList": false,
  "exmls": [
     "src/SimpleButtonSkin.exml"
  ]
}
复制代码

default2.thm.json

复制代码
{
  "skins": {
    
  },
  "autoGenerateExmlsList": false,
  "exmls": [
      "resource/eui_skins/ButtonSkin.exml",
     "src/HomeSceneSkin.exml"
  ]
}
复制代码

 

另外一说,wing2.5和3都会强行自动修改thm的json文件。。。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|吾知网 ( 粤ICP备13013563号-1 )

GMT+8, 2024-12-22 18:45 , Processed in 1.062500 second(s), 8 queries , Memcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表