EUI EXML内部类Skin和ItemRenderer
没认真看过...现在试试...
EXMl支持内部类
两种支持做为内部类的:Skin和ItemRenderer
优点:
这种最大的好处就是皮肤如果只用一次,不需要单独写成一个exml文件,只需要写在组件所在的exml里就行了。
如果是复用的皮肤,还是单独写成一个exml文件比较好,这样修改的时候只需要修改exml文件一处。
缺点:
没法可视化编辑...比如居个中 (horizontalCenter="0" verticalCenter="0"), 如果你对exml的语法不熟的话...你就...
下面是一个Button的内部皮肤Skin:
<e:Button id="btn" label="Button" x="" y="">
<e:skinName>
<e:Skin states="up,down,disabled" minHeight="" minWidth="">
<e:Image width="100%" height="100%" scale9Grid="1,3,8,8" alpha.disabled="0.5" source="button_up_png" source.down="button_down_png"/>
<e:Label id="labelDisplay" top="" bottom="" left="" right="" size="" textColor="0xFFFFFF" verticalAlign="middle" textAlign="center"/>
<e:Image id="iconDisplay" horizontalCenter="" verticalCenter=""/>
</e:Skin>
</e:skinName>
</e:Button>
一个List的内部皮肤itemRendererSkinName:
<e:List id="list" width="" height="" x="" y="">
<e:itemRendererSkinName>
<e:Skin states="up,down,disabled" minHeight="" minWidth="">
<e:Image width="100%" height="100%" scale9Grid="1,3,8,8" alpha.disabled="0.5" source="button_up_png" source.down="button_down_png"/>
<e:Label id="labelDisplay" top="" bottom="" left="" right="" size="" fontFamily="Tahoma" textColor="0xFFFFFF" text="{data}" verticalAlign="middle" textAlign="center"/>
</e:Skin>
</e:itemRendererSkinName>
</e:List>
将一个exml皮肤转成内部类时,只需要在组件上右键,转换皮肤为内嵌皮肤。
下图是将List的条目皮肤ItemRendererSkin转为内嵌皮肤
转换前:
<e:List width="" height="" x="" y="" itemRendererSkinName="skins.ItemRendererSkin"/>
转换后:
属性面板上的皮肤内嵌到exml里了...如果这个皮肤只使用一次,那么ItemRendererSkin.exml可以删掉了。
<e:List width="" height="" x="" y="">
<e:itemRendererSkinName>
<e:Skin states="up,down,disabled" minHeight="" minWidth="">
<e:Image width="100%" height="100%" scale9Grid="1,3,8,8" alpha.disabled="0.5" source="button_up_png" source.down="button_down_png"/>
<e:Label id="labelDisplay" top="" bottom="" left="" right="" size="" fontFamily="Tahoma" textColor="0xFFFFFF" text="{data}" verticalAlign="middle" textAlign="center"/>
</e:Skin>
</e:itemRendererSkinName>
</e:List>
内嵌皮肤怎么转成exml就不知道了...教程上说一键转换,没找着... ...
找不着就新建一个exml,然后复制粘贴...
立即返回高宽
组件实例化后,childrenCreated里访问立刻返回高宽。原来不是吗...忘了...
如果立刻获取不了,使用validateNow()...
class HomScene extends eui.Component{
private btn:eui.Button; public constructor() {
super();
this.skinName = "HomeSceneSkin";
console.log(this.btn.width); //0
} public childrenCreated(){
console.log(this.btn.width); //100
} private onChange(e:eui.UIEvent){ }
}
EUI EXML内部类Skin和ItemRenderer的更多相关文章
- egret之好友列表(滑动列表)
本文采用List+Scroller实现列表滑动功能 首先新建两个皮肤,一个用做好友界面的显示,一个用作单个好友的显示,新建皮肤如下: 皮肤一取名为:wxMainSkin,添加如下控件 皮肤一取名为:w ...
- EUI库 - EXML
EXML是可以运行时加载解析的 <e:Skin class="skins.ButtonSkin" states="up,down,disabled&qu ...
- EUI库 - 概述
新特性 36k 访问EUI组件宽高时,也会跟原生显示对象的表现一致,立即能得到包含子项的宽高值 统一的显示列表 普通对象和eui对象都可用addChild来添加 一个逻辑组件只管 ...
- EUI库 - 皮肤
皮肤分离机制 皮肤分离机制对制作可复用的外观比较有优势 那对于只使用一次的皮肤呢?如果也拆分出两个文件,显然不太方便.这里我们针对单次使用的皮肤定制了内部类的功能 每个组件都有一个chi ...
- 最近这两天看了关于H5游戏开发的一个教程,实践很短暂,看了很多理论的东西,现在呢也只是想回忆回忆关于EUI的部分知识吧
首先我了解了什么是Egret: Egret中文就是白鹭的意思,Egret是一套H5游戏开发的软件.(纯粹属于个人理解) 其次我对以下几款软件的相关知识做了些了解: Egret Engine(引擎),E ...
- EUI ViewStack实现选项卡组件
一 TabBar+ViewStack实现 这个教程确实没看懂...贼麻烦... 二 RadioButton+ViewStack 在exml中拖动组件RadioButton和ViewStack 设置e ...
- EUI HSlider 实现音量控制
一 HSlider使用 直接拖动到exml上,并赋值默认皮肤 <?xml version="1.0" encoding="utf-8"?> < ...
- EUI ToggleButton ToggleSwitch 实现类似音乐开关按钮
一 ToggleButton和ToggleSwitch区别 没区别,就是继承... export class ToggleSwitch extends ToggleButton { /** * @la ...
- Egret 生成 自带EUI 的微信小游戏 踩坑!
1. 首先,再次被网上一大堆屎一样的资料搞得浪费了我一天时间.各种坑. 2. 本文先讲一种正确的方式,然后再列举坑. 去www.egret.com下载最新的引擎,我的最新版本是5.2.2. 然后就会被 ...
随机推荐
- Spring下获取项目根路径--good
Spring 在 org.springframework.web.util 包中提供了几个特殊用途的 Servlet 监听器,正确地使用它们可以完成一些特定需求的功能.比如某些第三方工具支持通过 ${ ...
- js学习笔记12----json数据格式,语法,遍历
1.json数据格式:var json={} 示例一: var user = {'name':'sese','age':'24','sex':'女'} console.log(user.age); / ...
- PHP框架之ThinkPHP项目CMS内容管理系统源码及开发手册视频
http://download.csdn.net/download/duguqing/4203042
- 中国餐馆过程(Chinese restaurant process)
也就是说假设空桌子有a0个人,然后顾客选择桌子的概率和桌子上人数成正比. 性质: 改变用户的排列方式,桌子的排列方式,概率不变换.
- WinInet 小例子
#include <windows.h> #include <wininet.h> #include <string> #include <iostream& ...
- 【转载】C#进阶系列——动态Lamada(二:优化)
前言:前几天写了一篇动态Lamada的文章C#进阶系列——动态Lamada,受园友xiao99的启发,今天打算来重新优化下这个动态Lamada的工具类.在此做个笔记,以免以后忘了. 一.原理分析 上篇 ...
- c++下面的一个单例
Public FileManager { private FileManager(); public static FileManager Instance=new FileManager(); } ...
- 转载:15个最受欢迎的Python开源框架
出自:http://python.jobbole.com/72306/?replytocom=57112 15个最受欢迎的Python开源框架 Django: Python Web应用开发框架 Dja ...
- 关于C++中using namespace std
原文链接:http://www.kuqin.com/language/20080107/3532.html <iostream>和<iostream.h>是不一样,前者没有后缀 ...
- [渗透技巧] Windows命令行下载
certutil简介 用于证书管理 支持环境: XP - Windows 10 全系统 更多:https://technet.microsoft.com/zh-cn/library/cc75534 ...