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

一  官方教程

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 = ""。

autoGenerateExmlsListtrue:发布时将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文件。。。

时间: 2024-11-08 20:13:26

Theme皮肤文件(json解析、多文件管理)的相关文章

JSON解析---初识

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式 完全独立于语言的文本格式 易于人阅读和编写 易于解析和生成 (网络传输速度快) JSON语法规则 数据在 名称/值 对中 数据有逗号分隔 花括号保存对象 方括号保存数组 以下是一个.JSON 文件 { "class1":[ { "name":"zhangsan", "age":"14", "tel&quo

json解析 本地文件和网上文件(通过接口)

json解析 对本地文件解析 NSString *path =[[NSBundle mainBundle] pathForResource:@"movielist" ofType:@"txt"]; // 第二个参数,制定一个容器来接收解析后的数据 NSMutableDictionary *dic =[NSJSONSerialization JSONObjectWithData:data option:NSJSONReadingMutableContainers er

文件与网络、JSON解析

文件与网络.JSON解析   分类: OC语言基础 同步.异步.JSON解析.XML解析 NSData 字节数据存储,二进制存储,苹果中认为字符型和字节型都可以存,即计算机中所有类型的数据,主要用于网络传输数据的缓冲存储 GET请求,只支持255个字符 ,安全性较差,将请求信息附加在超链接上,较方便  POST请求,上传没有大小限制,请求信息在请求体内,在超链接上不能看到,安全性强,缺点:不方便 同步连接:UI “冻结” 异步连接:UI “不冻结” 异步连接,用代理:下载容易造成UI冻结,耗时,

项目开发笔记-传单下发 名片替换 文件复制上传/html静态内容替换/json解析/html解析

//////////////////////////// 注意: 此博客是个人工作笔记 非独立demo////////////////////////////////// ....................................................................................................................................................................

Android网络请求框架AsyncHttpClient实例详解(配合JSON解析调用接口)

最近做项目要求使用到网络,想来想去选择了AsyncHttpClient框架开进行APP开发.在这里把我工作期间遇到的问题以及对AsyncHttpClient的使用经验做出相应总结,希望能对您的学习有所帮助. 首先按照惯例先来简单了解一些AsyncHttpClient网络框架的一些知识. 1.简介 Android中网络请求一般使用Apache HTTP Client或者采用HttpURLConnect,但是直接使用这两个类库需要写大量的代码才能完成网络post和get请求,而使用android-a

Linux json解析jq

jq是一个linux下很方便的json解析器,平时看json文件都是一行混在一起的,非常不适合阅读. https://stedolan.github.io/jq/download/ 直接到官网上下载,然后像运行普通程序一样运行就可以了. 1.最常用的用法是 ./jq . filename 格式化输出filename 2.将格式化的json输出,反向转换变成一行.(什么,没什么卵用,呵呵,真正碰到需要用的时候愁死你) ./jq -c . filename 还有很多用法,直接上官方说明: https

Java基础知识强化103:JSON解析框架汇总

1.Gson Gson是Google提供的一个能够将Java对象转换成相应JSON表达形式的一个开源Java类库,当然用Gson也能将JSON字符串转换成与之等价的Java对象.Gson对于任何Java对象都有效,包括那些预先存在没有源代码的对象. 现在已经有一些能将Java对象转换成JSON的开源项目了.但是大多数项目都要求你在类文件中加入Java注解,而当你无法改动源代码的时候这是无法做到的.并且它们也不支持Java泛型.但是Gson却将这两点作为自己非常重要的设计目标. 目标 使用toJs

Android 之json解析2

JSON(JavaScript Object Notation) 定义:字符串 键值对 解析方法有JSON,谷歌GSON,阿里巴巴FastJSON 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性. 业内主流技术为其提供了完整的解决方案(有点类似于正则表达式,获得了当今大部分语言的支持),从而可以在不同平台间进行数据交换. JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为. Json建构于两种结构: 1.“名称/值”对的集合(A collection of name

Cocos2d-x3.0 Json解析

在Cocos2dx3.0下,JSON解析库官方已经集成好了.我们引用就OK. JSON文件hello.json内容 {"pets":["dog","cat"],"stuInfo":{"stuAge":"23","stuName":"zhangsan","birthday":"1990-01-12"},&quo