标签

标签列表

标签说明
view容器标签,与HTML中的div相似
scrollview滚动列表容器,如果容器内的子元素高度大于scrollview高度,支持纵向滚动,不支持嵌套scrollview
image图片标签
text文本标签
bitmaptextbitmapfont文本标签
canvas对齐 Web,允许获取 context执行渲染

公共属性

每个标签都会通过属性来支持一些特有的功能,下面列举所有标签都会有的属性。

属性类型是否必填说明
idstring非唯一标识,两个标签可以共用id,可以通过 Layout.getElementsById 获取到元素实例
classstring与浏览器相同
datasetstring与浏览器相同,详见文档open in new window

view

view标签用来页面布局,布局严格遵循CSS Flex布局open in new window,节点在Flex属性相互作用的结果可以通过Yoga的Playgroundopen in new window试验。

image

特殊属性

属性类型是否必填说明
srcstring图片链接

TIP

1.小游戏开放数据域场景图片路径不需要加./作为前缀,以小游戏根目录作为根目录;

2.图片可以通过APIloadImgsopen in new window实现预加载

text

特殊属性

属性类型是否必填说明
valuestring文字内容

特殊样式

属性类型是否必填说明
textOverflowstring文字溢出处理方式,默认不处理,ellipsis则支持自动截断
textAlignstring文字水平居中方式,默认left,支持right、center

scrollview

滚动内容的容器,滚动的前提是正确调用updateViewPortopen in new window

特殊样式

属性类型是否必填说明
scrollXstring是否需要横向滚动,支持 "true"和"false",默认值为 "false"
scrollYstring是否需要纵向滚动,支持 "true"和"false", 默认值为"false"

bitmapfont

在游戏开发里面,为了更好的视觉效果,经常要将一些常用文字经过设计成图片,然后打包成特殊的字体,称为BitmapFont,基本上所有的游戏引擎都支持了这种技术。

本渲染引擎调研了常见的H5游戏引擎Laya、Cocos、Egret,他们普遍支持AngelCode.comopen in new window打包后的配置文件规范,因此biamapfont 同样只支持通过该工具打包后的文件。

需要特别注意的是,对于一般的游戏引擎而言,都会在自己的IDE里面将.fnt打包进代码里面,这里为了引擎轻量化,需要通过APIregistBitMapFontopen in new window手动注册字体。 然后在标签里面通过font属性声明需要使用的字体。

<bitmaptext font="fnt_number-export" class="title" value="等级"></bitmaptext>
title: {
  width: 144,
  fontSize: 48,
  height: 120,
  lineHeight: 50,
  textAlign: 'center',
  verticalAlign: 'top',
  fontWeight: 'bold',
  borderBottomWidth: 6,
  borderColor: '#000000',
}

特殊样式

属性类型是否必填说明
widthNumber文字的容器宽度,当width大于文字实际绘制占据的宽度,textAlign生效
heightNumber文字的容器高度,当height大于lineHeight,verticalAlign属性生效
lineHeightNumber渲染文字的行高,默认为配置文件里面的lineHeight
textAlignString文字水平居中方式,默认left,支持right、center
verticalAlignString文字垂直居中的方式,默认为middle,支持top和bottom
letterSpacingNumber字符间距

示例

canvas

特殊属性

属性类型是否必填说明
widthNumbercanvas 画布的尺寸,与样式的尺寸不是一个概念
heightNumbercanvas 画布的尺寸,与样式的尺寸不是一个概念
autoCreateCanvasString是否自动创建 canvas,默认为 "false",有些场景如微信小游戏场景,sharedCavans非业务创建,则需要手动设置canvas 实例
<view id="container">
  <canvas id="rank" width="300" height="300"></canvas>
</view>
let style = {
  container: {
    width: 500,
    height: 500,
    backgroundColor: '#f3f3f3',
  },
  rank: {
    width: 300,
    height: 300,
  }
}
const rank = Layout.getElementsById('rank')[0];

const updateRank = () => {
  rank.update();
}

// 手动指定 canvas 实例
rank.canvas = sharedCanvas; // sharedCanvas 为业务自己管理的 canvas 实例

// 要求Layout每帧刷新开放数据域 canvas 的绘制
Layout.ticker.add(updateRank);