文档管理中心
内容分发主题中心开发教程主题引擎HarmonyOS 5.0及以上版本主题引擎规范基础功能命令:百变卡片互动命令<CardInteractionCommand>

命令:百变卡片互动命令<CardInteractionCommand>

功能概述

通过使用该命令,桌面同屏上多个相同互动ID的百变卡片之间可设计趣味交互,支持按指定方向或者按随机模式进行互动,也可以一张卡片控制多张卡片,让百变卡片不仅可装扮桌面,也可通过互动为用户提供情绪价值。

支持范围

起始规范版本:HarmonyOS 7.0

是否平台特性:

表1 支持根标签
展开
  

锁屏(Lockscreen)

桌面(Wallpaper)

一镜到底(LongTake)

百变卡片(Widget)

充电动效(ChargingSkin)

是否支持

x

x

x

x

表2 支持设备类型
展开
  

直板机

折叠屏

平板

是否支持

XML规范

<CardInteractionCommand interactionId="" mode="" dataName="">
    <InteractionData>
        <Var name="" expression=""/>
    </InteractionData>
</CardInteractionCommand>

参数说明

CardInteractionCommand

参数

类型

选项

注释

interactionId

字符串

必填

百变卡片互动id,桌面同屏上相同互动id的两个卡片之间可以互动,互动id由ThemeStudio Pro工具自动生成,长度为4的字符串,内容为A-Z或a-z或0-9

mode

数值

必填

互动模式,桌面同一屏幕上相同互动id的百变卡片,根据卡片在桌面上摆放布局,可以按照以下互动模式实现不同方向的互动。

0:随机模式,桌面同一屏幕,相同互动id的卡片间随机发送互动数据。

1:从触发互动的卡片开始,根据桌面上卡片布局,按照从左到右,从上到下查找可互动的卡片,向查找到的第一张卡片发送互动数据。

2:从触发互动的卡片开始,根据桌面上卡片布局,按照从上到下,从左到右查找可互动的卡片,向查找到的第一张卡片发送互动数据。

3:从触发互动的卡片开始,根据桌面上卡片布局,按照从右到左,从下到上查找可互动的卡片,向查找到的第一张卡片发送互动数据。

4:从触发互动的卡片开始,根据桌面上卡片布局,按照从下到上,从右到左查找可互动的卡片,向查找到的第一张卡片发送互动数据。

5:群发模式,当前卡片向桌面同一屏幕,相同互动id的所有卡片发送互动数据(不包含当前卡片)

(1/2/3/4为顺序遍历模式,遍历规则,遍历方向不同,说明如下)

说明

1/2/3/4为顺序遍历模式,接收互动数据的卡片与用户桌面卡片布局有关,以如下卡片布局为例:

若按照模式0进行互动,用户点击卡片2触发互动,会随机选择其余4张卡片中的一张发送互动数据。

若按照模式1进行互动,根据卡片左顶点的行列坐标,按照从左到右,从上到下对卡片进行排序,排序结果为:1->2->3->4->5,若用户点击卡片2触发互动,优先向卡片3发送互动数据。

若按照模式2进行互动,根据卡片左顶点的行列坐标,按照从上到下,从左到右对卡片进行排序,排序结果为:1->4->2->3->5,若用户点击卡片2触发互动,优先向卡片3发送互动数据;若用户点击卡片4触发互动,优先向卡片2发送互动数据。

若按照模式3进行互动,根据卡片左顶点的行列坐标,按照从右到左,从下到上对卡片进行排序,排序结果为:5->4->3->2->1,若用户点击卡片2触发互动,优先向卡片1发送互动数据;若用户点击卡片4触发互动,优先向卡片3发送互动数据。

若按照模式4进行互动,根据卡片左顶点的行列坐标,按照从下到上,从右到左对卡片进行排序,排序结果为:5->3->2->4->1,若用户点击卡片2触发互动,优先向卡片4发送互动数据;若用户点击卡片5触发互动,优先向卡片3发送互动数据。

若按照模式5进行互动,用户点击卡片2触发互动,卡片1、3、4、5都会收到互动数据。

折叠屏折展、旋转、卡片缩放、删除、跨屏移入移出会导致卡片布局变化,触发卡片互动顺序刷新。

InteractionData

参数

类型

选项

注释

initValue

字符串

必填

互动数据初始值 (首次添加该互动id的卡片使用初始值),支持表达式

defaultValue

字符串

必填

互动数据默认值(同一个互动id的卡片添加至桌面多次,显示默认值),支持表达式

注意

1、同一个设计师名下的作品,其百变卡片可以使用相同的互动id,互动id由ThemeStudio Pro工具自动生成,手工生成的互动id无效。

2、仅桌面同一屏幕上相同互动id的卡片支持互动。

3、互动命令中声明的变量,在脚本其他地方不要重复声明。

4、若选择模式5(群发模式),则要求所有卡片的模式都必须是模式5,否则无法发送互动数据。

应用示例

示例一:通过按钮点击触发互动命令,发送卡片互动数据。

<?xml version="1.0" encoding="utf-8"?>
<Widget displayDesktop="true" frameRate="60" screenHeight="1440" screenWidth="1384" version="1">
    <Var name="w" const="true" expression="#screen_width" persist="true" />
    <Var name="h" const="true" expression="#screen_height" persist="true" />
    <Image src="by/byxxx.png" srcid="int(#byAnim)" x="0" y="0" visibility="eq(#imageData,0)"/>
    <Image src="by/bydkp.png" srcid="int(#byAnim)" x="0" y="0" visibility="eq(#imageData,1)"/>
    <Image src="by/byyyy.png" srcid="int(#byAnim)" x="0" y="0" visibility="eq(#imageData,2)"/>
    <Button h="#h" w="#w" x="0" y="0">
        <Trigger action="click">
            <CardInteractionCommand interactionId="AADS" mode="0">
                <InteractionData initValue="0" defaultValue="1">
                    <Var expression="0" name="imageData" />
                </InteractionData>
            </CardInteractionCommand>
        </Trigger>
    </Button>
</Widget>
在 内容分发 中进行搜索
请输入您想要搜索的关键词