Skip to content
iPlugin

滚动面板

查阅空格区域、colums 分组、方向、初始偏移与 tail。

滚动面板展示事先配置的一组组图标,一次移动一组,不按数据数量生成分页。下面的菜单固定显示两端箭头,中间七格水平滚动八种食物。

scroll-demo.yml配置效果示意 · 非游戏截图
图示状态偏移 0
窗口槽位 1窗口坐标 1x0面板局部坐标 1x0字符 空格

中间七格循环滚动,两端是固定方向按钮。

水平滚动示例

将文件放到 plugins/Invero/workspace/scroll-demo.yml,重载后用 /invero menu open scroll-demo 打开。

plugins/Invero/workspace/scroll-demo.yml
menu:
  title: '&8滚动食物'
  rows: 1
panels:
  - layout:
      - '<       >'
    icons:
      '<':
        material: ARROW
        name: '&f向左'
        action: 'scroll left'
      '>':
        material: ARROW
        name: '&f向右'
        action: 'scroll right'
    scroll:
      direction: horizontal
      tail: -1
      colums:
        - material: APPLE
          name: '&f苹果'
        - material: CARROT
          name: '&f胡萝卜'
        - material: POTATO
          name: '&f马铃薯'
        - material: BREAD
          name: '&f面包'
        - material: MELON_SLICE
          name: '&f西瓜'
        - material: GOLDEN_CARROT
          name: '&f金胡萝卜'
        - material: BAKED_POTATO
          name: '&f烤马铃薯'
        - material: GOLDEN_APPLE
          name: '&f金苹果'

下载 scroll-demo.yml。图示为配置效果示意:初始中间依次显示苹果、胡萝卜、马铃薯、面包、西瓜、金胡萝卜、烤马铃薯。点击右箭头后先显示胡萝卜,金苹果进入最右侧;负 tail 让列表继续绕回开头。左箭头反向移动一组。

面板字段

字段写在 panels 中包含 scroll 的那一项。

字段类型必填省略行为说明
layout文字列表是没有可用滚动区域,不能加载用空格留出一个矩形;所有空格的外接矩形就是滚动区域,不会自动拆成多个区域
scale两项整数列表否采用 layout 尺寸整个面板的宽度、高度,包括固定箭头和背景
locate两项整数列表否在父容器中自动寻找未占用起点整个区域的位置;需要偏移时明确填写
icons(icon、item、items)图标映射是缺少整个字段不能加载固定背景和导航;放在滚动矩形以外
scroll滚动设置对象是不选择滚动面板方向、分组和偏移见下表

空格必须组成你想要的单个完整矩形。把两个空格区域用装饰隔开,仍会把中间装饰一起包进同一个矩形;不要据此设计不规则或互不相连的滚动区。

滚动字段

字段位于 scroll 内。

字段类型必填省略行为说明
direction文字否水平滚动只有 vertical(忽略大小写)选择纵向;horizontal 和其他文字均按水平处理
colums图标或图标列表组成的列表是无内容分组保留 colums 这一拼写,columns 不是别名;每项是一列或一行
tail整数否-1,循环滚动负数循环;0 可滚至全空;正数决定末端保留的分组数量
default-index整数或表达式文字否从偏移 0 开始正数经变量解析后作为初始偏移,并遵守尾部边界;0、负数或无法得到整数时仍从 0 开始

分组如何排布

方向colums 每一项组内图标顺序同时可见组数
水平一列从上到下滚动矩形的宽度
纵向一行从左到右滚动矩形的高度

单格组可直接写图标;多格组写成嵌套列表。下面是两列、每列两个图标的分组片段,需要放入有两行高滚动区域的面板:

scroll:
  direction: horizontal
  colums:
    -
      - material: APPLE
      - material: CARROT
    -
      - material: BREAD
      - material: POTATO

第一列上方苹果、下方胡萝卜,第二列上方面包、下方马铃薯。改为 vertical 后,第一项变成苹果在左、胡萝卜在右的一行。每组超过区域容量的图标不显示,少于容量的格子留空。

每个图标仍支持外观、子状态与点击动作;位置由分组安排,不在分组图标上再写 slot。未指定 ID 的分组图标使用 colum_组索引_icon_组内索引,两种索引都从 0 开始,例如 colum_0_icon_0;要按名称操作它们也可显式设置 id。

滚动结束位置

tail实际结束位置
负数,例如 -1在内容首尾之间循环;前进越过最后组回到开头,后退越过开头到最后组
0最大偏移等于总分组数,允许整个区域为空
正数末端保留 tail 与可见组数中的较小者;最大偏移是总分组数减去这个数量

本例八组、同时可见七组:tail: 7 的最大偏移是 1,最后显示第 2~8 项;tail: 1 的最大偏移是 7,最后只剩金苹果;tail: 99 与 tail: 7 相同,不会保留九十九组。

正 tail 的有效保留量不能超过总分组数,否则无法得到有效边界。循环时只在结尾补接一次开头的内容:分组过少、可见区域过大时仍可能出现空格,并非无限复制到铺满窗口。

控制语句

语句作用
scroll right、scroll down、scroll next正向滚动一组;这三个名称等价,不会改换配置方向
scroll left、scroll up、scroll previous反向滚动一组
scroll reset回到偏移 0,不是重新应用 default-index
scroll get、scroll index读取当前组偏移
shift by 2 0水平相对移动两组;纵向用 shift by 0 2,by 可写 with

大步幅 shift 按滚动边界处理,不是对总组数精确取余;一次跨过一整圈以上不会保证保留剩余步数。

选择滚动区域

顶层的一个滚动配置包含两个可选择区域:固定背景在前,滚动区在后。因此只有本例一个滚动配置时,panel at 0 select 是固定箭头背景,panel at 1 select 才是内容滚动区。

panel at 1 select
scroll reset

多个滚动区域时,按它们各自的背景、滚动区顺序选择实际索引。单独一个区域的箭头可以像下载示例那样省略选择,由 scroll 查找对应滚动区。偏移滚动面板请明确写 locate,避免自动放置时背景与内容落在不同起点;不要将本例直接嵌入固定 pages 充当一个普通滚动页。

Last updated on