Appearance
橱窗(ShopWin)
橱窗也是容器,通常可以作为列表的一项。
1、橱窗组件
typescript
// 橱窗的使用参考ListView
// 定义橱窗的布局
class ShopWinDemo extends LM.ShopWin{
private num:number;
private text:LM.TextView();
init(): void {
super.init()
this.num = this.params;
this.text = new LM.TextView();
this.text.text = num;
this.text.onClick(() => {
console.log("点击+1")
this.sceneManager.add();
})
this.addChild(this.text);
this.backgroundColor = "#FFFFFF"
}
//当它在泳道,更改泳道传入参数,reDraw会自动调用。如果是普通橱窗,需手动调用。
reDraw():void {
this.num = this.params;
this.text.text = num;
}
}2、常用属性
| 属性 | 解释 | 值 | 默认值 |
|---|---|---|---|
| x | x | 数值 | 0 |
| y | y | 数值 | 0 |
| z | 图层高度,越高越靠上层 | 数值 | 0 |
| width | 宽,图片超出范围会显示不完整 | 数值,不填为自适应 | |
| height | 高,图片超出范围会显示不完整 | 数值,不填为自适应 | |
| backgroundColor | 背景色 | 字符串,填色号如红色“#FF0000” | |
| visible | 是否可见 | 布尔值,true可见,false不可见 | true |
| alpha | 不透明度 | 数值,0~255,255表示完全不透明 | 255 |
| touchEnabled | 是否可点击 | 布尔值,true可点击,false不可点击 | true |
| alphaHitUnable | 透明区域是否可点击 | 布尔值,true可点击,false不可点击 | true |
| isPenetrable | 是否可以穿透(点击到下层组件) | 布尔值,true可穿透,false不可穿透 | true |
| scaleX | 宽缩放率 | 数值,1为原始的宽 | 1 |
| scaleY | 高缩放率 | 数值,1为原始的高 | 1 |
| zoomCenterX | 缩放中心x(相对于自身) | 数值,0.5为自身X轴中点 | 0 |
| zoomCenterY | 缩放中心y(相对于自身) | 数值,0.5为自身Y轴中点 | 0 |
| sceneManager | 获取父级对象(创建橱窗的scene 或者 shopwin) | 对象 | |
| itemIndex | 获取当前橱窗在泳道列表中的索引 | 数值 | |
| params | 传入参数 | any |
3、常用方法
(1)onClick
点击行为
(2)onTouchDown
按下行为
(3)onTouchUp
抬起行为
(4)onTouchMove
鼠标在组件区域内移动(可用作悬浮)
(5)onTouchCancel
鼠标移出组件区域(可用作离开悬浮)
typescript
let spine = new LM.Spine()
// 注册了点击事件
spine.onClick(()=>{console.log("点击了控件")})
// 注册了按下事件
spine.onTouchDown(()=>{console.log("按下")})
// 注册了抬起事件
spine.onTouchUp(()=>{console.log("抬起")})
// 注册了移动事件
spine.onTouchMove(()=>{console.log("移动了")})
// 注册了移出事件
spine.onTouchCancel(()=>{console.log("移出")})(6)awake
橱窗单独作为容器使用的时候,调用此方法,把参数传入橱窗
typescript
let shopWin = new ShopWinDemo()
shopWin.awake(
{
num:0;
)(7)reDraw
泳道数据刷新时 会执行对应修改橱窗的reDraw方法