ProtoPie AI 已上线——现已进入 Beta 版。了解更多

ProtoPie AI 已上线——现已进入 Beta 版。了解更多

介绍 ProtoPie

入门

制作你的第一个原型

ProtoPie 生态系统

ProtoPie Studio 界面

导入

入门

从 Adobe XD 导入

从 Figma 导入

从 Sketch 导入

ProtoPie 精灵

基本元素

容器

设备

图层

预览窗口

场景

滚动/分页

快捷键

系统状态栏

触发条件与响应

缓动

注释

回复

时间线

触发器

公式

入门

功能

图层属性

语法

公式使用场景

变量

入门

变量

预定义变量

变量使用案例

AI

入门

AI 交互创作

AI 文档问答

AI 面板界面

获得最佳效果的提示

ProtoPie MCP

Getting Started

Studio MCP Introduction

Studio MCP Installation & Setup

Code MCP Introduction

Code MCP 安装与设置

Dev View

自动布局

入门

自动布局属性

组件

入门

组件指南

编辑组件

嵌套组件

发送和接收消息

交互库

入门

管理交互库

管理图书馆会员

语音原型设计

入门

收听回复

朗读回复

应用场景

语音命令触发

连接设备

连接 blokdots

连接移动设备

ProtoPie Cloud

入门

管理原型

管理存储

共享原型

ProtoPie Player

测试原型

管理字体

离线测试

适用于 Wear OS 的 ProtoPie Player

团队

入门

编辑者和查看者

让您的团队快速上手

项目

团队所有者和团队管理员

交接

入门

创建交互录制

管理交互录制

录制页面

用户测试

入门

概述

创建测试房间

外部集成

管理测试会话

测试结果与分析

ProtoPie Cloud 上的用户测试

ProtoPie Connec

入门

API 插件

Arduino 插件

blokdots 插件

连接嵌入式

自定义层集成

自定义插件

连接设备

游戏手柄插件

IFTTT 插件

罗技 G29 方向盘插件

测试原型

功能比较

Unity 插件

ProtoPie 企业版

入门

组织设置

服务管理员

单点登录(SSO)

安全

概述

访问控制

数据传输、存储与备份

事件响应

网络与 ProtoPie Player 应用的安全性

物理安全

风险管理

菜单

介绍 ProtoPie

入门

制作你的第一个原型

ProtoPie 生态系统

ProtoPie Studio 界面

导入

入门

从 Adobe XD 导入

从 Figma 导入

从 Sketch 导入

ProtoPie 精灵

基本元素

容器

设备

图层

预览窗口

场景

滚动/分页

快捷键

系统状态栏

触发条件与响应

缓动

注释

回复

时间线

触发器

公式

入门

功能

图层属性

语法

公式使用场景

变量

入门

变量

预定义变量

变量使用案例

AI

入门

AI 交互创作

AI 文档问答

AI 面板界面

获得最佳效果的提示

ProtoPie MCP

Getting Started

Studio MCP Introduction

Studio MCP Installation & Setup

Code MCP Introduction

Code MCP 安装与设置

Dev View

自动布局

入门

自动布局属性

组件

入门

组件指南

编辑组件

嵌套组件

发送和接收消息

交互库

入门

管理交互库

管理图书馆会员

语音原型设计

入门

收听回复

朗读回复

应用场景

语音命令触发

连接设备

连接 blokdots

连接移动设备

ProtoPie Cloud

入门

管理原型

管理存储

共享原型

ProtoPie Player

测试原型

管理字体

离线测试

适用于 Wear OS 的 ProtoPie Player

团队

入门

编辑者和查看者

让您的团队快速上手

项目

团队所有者和团队管理员

交接

入门

创建交互录制

管理交互录制

录制页面

用户测试

入门

概述

创建测试房间

外部集成

管理测试会话

测试结果与分析

ProtoPie Cloud 上的用户测试

ProtoPie Connec

入门

API 插件

Arduino 插件

blokdots 插件

连接嵌入式

自定义层集成

自定义插件

连接设备

游戏手柄插件

IFTTT 插件

罗技 G29 方向盘插件

测试原型

功能比较

Unity 插件

ProtoPie 企业版

入门

组织设置

服务管理员

单点登录(SSO)

安全

概述

访问控制

数据传输、存储与备份

事件响应

网络与 ProtoPie Player 应用的安全性

物理安全

风险管理

函数

函数就像现成的工具,用于执行特定任务。它们接收数据作为输入,进行处理,并返回结果。

以下是函数可以完成的一些示例:

  • 统计文本中的字符数量。

  • 在文本中搜索特定单词。

  • 确定两个数字中较小的一个。

ProtoPie 中的函数具有特定结构:

  • function(argument: TYPE) → 结果: TYPE

  • function(argument1: TYPE, argument2: TYPE) → 结果: TYPE

  • function(argument1: TYPE, argument2: TYPE, argument3: TYPE) → 结果: TYPE

函数通常使用一个或多个参数(数据)作为输入——即函数执行任务时使用的值。参数以及结果都是始终属于特定类型的值。类型可以是文本、数字或颜色。

可选择的类别有:

文本

concat(来源1:文本, 来源2:文本)

文本

将两段独立的文本合并为一段。

示例: concat("你好", "世界")

"你好,世界"

indexOf(源: 文本, 搜索值: 文本)

数字

查找关键字在文本中的起始位置。如果文本中不存在该关键字,则返回值为 -1。

示例: indexOf("hello world", "world")

6

示例: indexOf("hello world", "hello")

0

示例: indexOf("你好,世界", "再见")

-1

对于电子邮件验证等用例,请使用 indexOf。查看用例示例。

长度(来源: 文本)

数字

统计文本中的字符数。

示例: length("hello")

5

示例: length("helloworld")

10

示例: length("你好,世界")

11

对于密码验证等用例,请使用长度。查看用例示例。

小写(源: 文本)

文本

将任何文本从大写转换为小写

示例: lowerCase("你好")

"你好"

大写(源: 文本)

文本

将任何文本从小写转换为大写。

示例: upperCase("你好")

"你好"

left(源:文本, 计数: 数字)

文本

根据指定的字符数,从左侧提取一部分文本。

示例: left("hello", 3)

“hel”

right(源: 文本, 计数: 数字)

文本

根据指定的字符数,从左侧提取一部分文本。

示例: right("hello", 2)

"喂"

lpad(源: 文本, 长度: 数字, 填充: 文本)

文本

使用另一个文本在左侧填充文本,使其达到指定长度。

示例: lpad("5", 2, "0")

"05"

示例: lpad("5", 4, "0")

"0005"

rpad(源: 文本, 长度: 数字, 填充: 文本)

文本

使用另一段文本对文本进行右侧填充,以达到指定长度。

示例: rpad("5", 2, "1")

"51"

示例: rpad("5", 6, "1")

"511111"

重复(源: 文本, 次数: 数字)

文本

将文本重复指定次数。

示例: repeat("hello", 2)

"你好你好"

示例: repeat("你好", 3)

"你好你好你好"

替换(源: 文本, 从: 文本, 到: 文本)

文本

将文本的一部分替换为另一段文本。

示例: replace("helloworld", "world", "protopie")

"你好,ProtoPie"

示例: replace("再见,John", "再见", "谢谢你")

"谢谢你,约翰"

trim(来源: 文本)

文本

移除文本两侧的空白字符。

示例: trim(" helloworld")

"你好,世界"

示例: trim(" helloworld ")

"你好,世界"

ltrim(源: 文本)

文本

删除文本左侧的空白字符。

示例: ltrim(" helloworld ")

"你好世界 "

rtrim(源: TEXT)

文本

删除文本右侧的空白字符。

示例: ltrim(" helloworld ")

" 你好,世界"

regexextract(源:TEXT, 正则表达式:TEXT)

文本

提取文本中与提供的正则表达式匹配的首个子字符串。

示例: regexextract("Google 文档 101", "[0-9]+")

"101"

示例:

regexextract("今天的价格是 $826.25", "[0-9]*\.[0-9]+[0-9]+")

"826.25"

regexreplace(源: 文本, 正则表达式: 文本, 替换为: 文本)

文本

使用正则表达式将文本字符串的一部分替换为不同的文本字符串。

示例: regexreplace("Google Doc 101", "[0-9]+", "777")

"谷歌文档 777"

示例:

regexreplace("今天的价格是 $826.25", "[0-9]*\.[0-9]+[0-9]+", "315.75")

"价格是$315.75"

parseJson(来源: TEXT, 键: TEXT)

文本

解析有效的 JSON 字符串并返回相应的值。

示例:

parseJson("{\"name\":\"John\", \"age\":30, \"car\":null}", "age")

"30"

示例:

parseJson("{\"name\":\"John\", \"age\":30, \"car\":null}", "name")

"约翰"

concat(来源1:文本, 来源2:文本)

文本

将两段独立的文本合并为一段。

示例:

concat("你好", "世界")

"你好,世界"

indexOf(源: 文本, 搜索值: 文本)

数字

查找关键字在文本中的起始位置。如果文本中不存在该关键字,则返回值为 -1。

示例:

indexOf("hello world", "world")

6

示例:

indexOf("你好,世界", "你好")

0

示例:

indexOf("你好,世界", "再见")

-1

对于电子邮件验证等用例,请使用 indexOf。查看用例示例。

长度(来源: 文本)

数字

统计文本中的字符数。

示例: length("hello")

5

示例: length("helloworld")

10

示例: length("你好,世界")

11

对于密码验证等用例,请使用长度。查看用例示例。

小写(源: 文本)

文本

将任何文本从大写转换为小写

示例: lowerCase("你好")

"你好"

大写(源: 文本)

文本

将任何文本从小写转换为大写。

示例: upperCase("你好")

"你好"

left(源:文本, 计数: 数字)

文本

根据指定的字符数,从左侧提取一部分文本。

示例: left("hello", 3)

“hel”

right(源: 文本, 计数: 数字)

文本

根据指定的字符数,从左侧提取一部分文本。

示例: right("hello", 2)

"喂"

lpad(源: 文本, 长度: 数字, 填充: 文本)

文本

使用另一个文本在左侧填充文本,使其达到指定长度。

示例: lpad("5", 2, "0")

"05"

示例: lpad("5", 4, "0")

"0005"

rpad(源: 文本, 长度: 数字, 填充: 文本)

文本

使用另一段文本对文本进行右侧填充,以达到指定长度。

示例: rpad("5", 2, "1")

"51"

示例: rpad("5", 6, "1")

"511111"

重复(源: 文本, 次数: 数字)

文本

将文本重复指定次数。

示例: repeat("hello", 2)

"你好你好"

示例: repeat("你好", 3)

"你好你好你好"

替换(源: 文本, 从: 文本, 到: 文本)

文本

将文本的一部分替换为另一段文本。

示例: replace("helloworld", "world", "protopie")

"你好,ProtoPie"

示例:

replace("再见,约翰", "再见", "谢谢你")

"谢谢你,约翰"

trim(来源: 文本)

文本

移除文本两侧的空白字符。

示例:

trim(" helloworld")

"你好,世界"

示例:

trim(" helloworld ")

"你好,世界"

ltrim(源: 文本)

文本

删除文本左侧的空白字符。

示例:

ltrim(" helloworld ")

"你好世界 "

rtrim(源: TEXT)

文本

删除文本右侧的空白字符。

示例:

ltrim(" helloworld ")

" 你好,世界"

regexextract(源:TEXT, 正则表达式:TEXT)

文本

提取文本中与提供的正则表达式匹配的首个子字符串。

示例: regexextract("Google 文档 101", "[0-9]+")

"101"

示例:

regexextract("今天的价格是 $826.25", "[0-9]*\.[0-9]+[0-9]+")

"826.25"

regexreplace(源: 文本, 正则表达式: 文本, 替换为: 文本)

文本

使用正则表达式将文本字符串的一部分替换为不同的文本字符串。

示例: regexreplace("Google Doc 101", "[0-9]+", "777")

"谷歌文档 777"

示例:

regexreplace("今天的价格是 $826.25", "[0-9]*\.[0-9]+[0-9]+", "315.75")

"价格是$315.75"

parseJson(来源: TEXT, 键: TEXT)

文本

解析有效的 JSON 字符串并返回相应的值。

示例:

parseJson("{\"name\":\"John\", \"age\":30, \"car\":null}", "age")

"30"

示例:

parseJson("{\"name\":\"John\", \"age\":30, \"car\":null}", "name")

"约翰"

例如,考虑 parseJson(var, "key")。这里,var 是存储 JSON 字符串的文本变量,"key" 是要解析的键。后者支持嵌套键调用,以及通过 .(点)表示法对类数组对象进行简单引用。

parseJson 函数大大简化了在 ProtoPie 中处理复杂数据结构的过程。此外,由于大多数 API 响应都是 JSON 格式,能够在 Pies 中使用 parseJson 会让 API 的使用更加直接。

你可以使用 parseJson 函数来:

  • 通过 ProtoPie Connect 中的 Bridge 应用将 JSON 字符串发送到 pies(例如,message: “AutomobileSignal”, value: “json string”)。

  • 通过 Receive 触发器将值存储到 Pie 变量中。

  • 使用 JSON 字符串中的数据值。

  • 要了解更多,请查看这个Pie示例。

数学

pow(源: 数字, 指数: 数字)

数字

计算第一个数字的值提升到第二个数字次方后的结果。

示例: pow(2,3)

8

sqrt(来源:数字)

数字

计算一个数的平方根。这不适用于负数。

示例: sqrt(9)

3

示例: sqrt(2)

1.41

min(来源1: NUMBER, 来源2: NUMBER)

数字

提取两个数字中较小的一个。

示例: min(0, 1)

0

max(来源1: 数字, 来源2: 数字)

数字

取两个数字中较大的一个。

示例: max(0, 1)

1

abs(值: NUMBER)

数字

返回一个数字的绝对值。实际上,这就是去掉数字前面的负号。

示例: abs(-1)

1

示例: abs(5 - 25)

20

sign(值: 数字)

数字

检查一个数字是正数还是负数。如果一个数字是正数,则返回 1。如果一个数字是负数,则返回 -1。如果一个数字是 0,则返回 0。

示例: sign(5)

1

示例: sign(-10)

-1

示例: sign(0)

0

round(来源: 数字)

数字

返回一个数字的四舍五入值。

示例: round(3.49)

3

示例: round(1.5)

2

示例: round(6.79)

7

floor(来源: 数字)

数字

向下返回最接近的整数。

示例: floor(1.5)

1

示例: floor(2.99)

2

ceil(来源: NUMBER)

数字

向上返回最接近的整数。

示例: ceil(1.5)

2

示例: ceil(4.3)

5

随机()

数字

0 到 1 之间的随机小数。

示例: random()

0 到 1 之间的一个随机小数

random(最小值: 数字, 最大值: 数字)

数字

在两个给定数字之间随机返回一个十进制数。

示例: 随机(1, 5)

1 到 5 之间的一个随机小数

randomInt(最小值: NUMBER, 最大值: NUMBER)

数字

随机返回两个给定数字之间的一个整数。

示例: randomInt(1, 5)

1 到 5 之间的随机整数

弧度(度数: 数字)

数字

将角度转换为弧度。

示例: radians(180)

3.14 = π

示例: radians(90)

1.57 = π / 2

度数(弧度:数字)

数字

将弧度转换为度数。

示例: degrees($pi)

180

示例: degrees($pi / 2)

90

sin(弧度: 数字)

数字

计算一个以弧度为单位的数字的正弦值。

示例: sin($pi / 2)

1

示例: sin($pi / 6)

0.5

cos(弧度:数字)

数字

计算一个以弧度表示的数的余弦值。

示例: cos(0)

1

示例: cos($pi / 2)

0

tan(弧度:数字)

数字

计算一个以弧度表示的数字的正切值。

示例: tan($pi / 4)

1

示例: tan(0)

0

asin(x: 数字)

数字

计算 x 的反正弦(以弧度为单位)。

示例: asin(1)

1.57 = π / 2

示例: asin(0.5)

0.52 = π / 6

acos(x: 数字)

数字

计算 x 的反余弦(以弧度为单位)。

示例: acos(1)

0

示例: acos(0)

1.57 = π / 2

atan(x: 数字)

数字

计算 x 的反正切值(以弧度为单位)。

示例: atan(1)

0.79 = π / 4

示例: atan(0)

0

atan2(y: 数字, x: 数字)

数字

计算 x 和 y 的反正切(以弧度为单位),也称为欧几里得平面中的角度。

示例: atan2(1, 0)

1.57 = π / 2

示例: atan2(1, 1)

0.79 = π / 4

pow(源: 数字, 指数: 数字)

数字

计算第一个数字的值提升到第二个数字次方后的结果。

示例: pow(2,3)

8

sqrt(来源:数字)

数字

计算一个数的平方根。这不适用于负数。

示例: sqrt(9)

3

示例: sqrt(2)

1.41

min(来源1: NUMBER, 来源2: NUMBER)

数字

提取两个数字中较小的一个。

示例: min(0, 1)

0

max(来源1: 数字, 来源2: 数字)

数字

取两个数字中较大的一个。

示例: max(0, 1)

1

abs(值: NUMBER)

数字

返回一个数字的绝对值。实际上,这就是去掉数字前面的负号。

示例: abs(-1)

1

示例: abs(5 - 25)

20

sign(值: 数字)

数字

检查一个数字是正数还是负数。如果一个数字是正数,则返回 1。如果一个数字是负数,则返回 -1。如果一个数字是 0,则返回 0。

示例: sign(5)

1

示例: sign(-10)

-1

示例: sign(0)

0

round(来源: 数字)

数字

返回一个数字的四舍五入值。

示例: round(3.49)

3

示例: round(1.5)

2

示例: round(6.79)

7

floor(来源: 数字)

数字

向下返回最接近的整数。

示例: floor(1.5)

1

示例: floor(2.99)

2

ceil(来源: NUMBER)

数字

向上返回最接近的整数。

示例: ceil(1.5)

2

示例: ceil(4.3)

5

随机()

数字

0 到 1 之间的随机小数。

示例: random()

0 到 1 之间的一个随机小数

random(最小值: 数字, 最大值: 数字)

数字

在两个给定数字之间随机返回一个十进制数。

示例: 随机(1, 5)

1 到 5 之间的一个随机小数

randomInt(最小值: NUMBER, 最大值: NUMBER)

数字

随机返回两个给定数字之间的一个整数。

示例: randomInt(1, 5)

1 到 5 之间的随机整数

弧度(度数: 数字)

数字

将角度转换为弧度。

示例: radians(180)

3.14 = π

示例: radians(90)

1.57 = π / 2

度数(弧度:数字)

数字

将弧度转换为度数。

示例: degrees($pi)

180

示例: degrees($pi / 2)

90

sin(弧度: 数字)

数字

计算一个以弧度为单位的数字的正弦值。

示例: sin($pi / 2)

1

示例: sin($pi / 6)

0.5

cos(弧度:数字)

数字

计算一个以弧度表示的数的余弦值。

示例: cos(0)

1

示例: cos($pi / 2)

0

tan(弧度:数字)

数字

计算一个以弧度表示的数字的正切值。

示例: tan($pi / 4)

1

示例: tan(0)

0

asin(x: 数字)

数字

计算 x 的反正弦(以弧度为单位)。

示例: asin(1)

1.57 = π / 2

示例: asin(0.5)

0.52 = π / 6

acos(x: 数字)

数字

计算 x 的反余弦(以弧度为单位)。

示例: acos(1)

0

示例: acos(0)

1.57 = π / 2

atan(x: 数字)

数字

计算 x 的反正切值(以弧度为单位)。

示例: atan(1)

0.79 = π / 4

示例: atan(0)

0

atan2(y: 数字, x: 数字)

数字

计算 x 和 y 的反正切(以弧度为单位),也称为欧几里得平面中的角度。

示例: atan2(1, 0)

1.57 = π / 2

示例: atan2(1, 1)

0.79 = π / 4

颜色

颜色(红色:数字,绿色:数字,蓝色:数字)

颜色

根据 RGB 值返回颜色值(十六进制颜色代码)。

示例: color(255, 255, 255)

#FFFFFF

示例: color(255, 102, 97)

#FF6661

红色(来源: 颜色)

数字

返回十六进制颜色代码中 RGB 的红色参数。

示例: 红色(#FF0000)

255

示例: 红色(#008000)

0

示例: red(#0000FF)

0

绿色(来源: 颜色)

数字

返回十六进制颜色代码的绿色 RGB 参数。

示例: 绿色(#FF0000)

0

示例: 绿色(#008000)

128

示例: 绿色(#0000FF)

0

蓝色(来源: 颜色)

数字

返回十六进制颜色代码的蓝色 RGB 分量。

示例: 蓝色(#FF0000)

0

示例: 蓝色(#008000)

0

示例: 蓝色(#0000FF)

255

颜色(红色:数字,绿色:数字,蓝色:数字)

颜色

根据 RGB 值返回颜色值(十六进制颜色代码)。

示例: color(255, 255, 255)

#FFFFFF

示例: color(255, 102, 97)

#FF6661

红色(来源: 颜色)

数字

返回十六进制颜色代码中 RGB 的红色参数。

示例: 红色(#FF0000)

255

示例: 红色(#008000)

0

示例: red(#0000FF)

0

绿色(来源: 颜色)

数字

返回十六进制颜色代码的绿色 RGB 参数。

示例: 绿色(#FF0000)

0

示例: 绿色(#008000)

128

示例: 绿色(#0000FF)

0

蓝色(来源: 颜色)

数字

返回十六进制颜色代码的蓝色 RGB 分量。

示例: 蓝色(#FF0000)

0

示例: 蓝色(#008000)

0

示例: 蓝色(#0000FF)

255

类型转换

number(来源: 文本)

数字

将文本转换为数字。如果文本无法转换为数字,此操作将不起作用。

示例: number("1234")

1234

示例: number("94.27")

94.27

文本(来源: 数字)

文本

将数字转换为文本。

示例: 文本(1234)

"1234"

示例: text(94.27)

"94.27"

示例: 文本(1 + 3)

"4"

格式化(来源: 数字, 格式: 文本)

文本

将数字按特定格式转换为文本。# 是整数部分的占位符,而 0 表示小数部分。

示例: 格式(1234.567, "#")

"1235"

示例: 格式(1234.567, "#,###")

"1,235"

示例: 格式(1234.567, "#.###,00")

"1,234.57"

示例: format(1234.567, "#,##.00")

"12,34.57"

示例: format(1234.567, "#,###.00")

"1,234.57"

color(来源: 文本)

颜色

将文本转换为颜色值(十六进制颜色代码)。如果文本不符合十六进制颜色代码的结构,则此功能无法使用。

示例: green("#FFFFFF")

#FF0000

number(来源: 文本)

数字

将文本转换为数字。如果文本无法转换为数字,此操作将不起作用。

示例: number("1234")

1234

示例: number("94.27")

94.27

文本(来源: 数字)

文本

将数字转换为文本。

示例: 文本(1234)

"1234"

示例: text(94.27)

"94.27"

示例: 文本(1 + 3)

"4"

格式化(来源: 数字, 格式: 文本)

文本

将数字按特定格式转换为文本。# 是整数部分的占位符,而 0 表示小数部分。

示例:

format(1234.567, "#")

"1235"

示例:

format(1234.567, "#,###")

"1,235"

示例:

format(1234.567, "#.###,00")

"1,234.57"

示例:

format(1234.567, "#,##.00")

"12,34.57"

示例:

format(1234.567, "#,###.00")

"1,234.57"

color(来源: 文本)

颜色

将文本转换为颜色值(十六进制颜色代码)。如果文本不符合十六进制颜色代码的结构,则此功能无法使用。

示例: green("#FFFFFF")

#FF0000

图层

图层(来源: 文本)

图层

参考某个图层。

将其用作公式或其他函数的一部分。

图层(来源: 文本).属性

文本或数字

请参阅图层的属性。了解更多有关图层属性的信息。

示例: layer("矩形 1").x

名为“Rectangle 1”的图层的 x 坐标

示例: layer("Oval 1").opacity

名为 Oval 1 的图层的不透明度

示例: layer("输入 1").text

输入层中名为 Input 1 的文本

父级(图层名称: 图层)

图层

请参考父层,例如容器或组件。

将其用作公式或其他函数的一部分。

父级(图层名称: 图层).属性

文本或数字

请参照父图层的属性。了解更多关于图层属性。

示例: layer("矩形 1").x

矩形 1 在其父图层中的 x 坐标

示例: layer("Oval 1").opacity

椭圆 1 及其父图层的不透明度

初始化(图层名称: 图层, 图层属性: 文本)

文本或数字

返回特定图层属性的初始值(在任何交互之前)。了解更多有关图层属性的信息。

示例: initial("Rectangle 1").x

矩形 1 的初始 x 坐标

示例: initial("椭圆 1,不透明度")

椭圆 1 的初始不透明度

示例: initial("输入 1,文本")

输入 1 中的初始文本

图层(来源: 文本)

图层

参考某个图层。

将其用作公式或其他函数的一部分。

图层(来源: 文本).属性

文本或数字

请参阅图层的属性。了解更多有关图层属性的信息。

示例: layer("矩形 1").x

名为“Rectangle 1”的图层的 x 坐标

示例: layer("Oval 1").opacity

名为 Oval 1 的图层的不透明度

示例: layer("输入 1").text

输入层中名为 Input 1 的文本

父级(图层名称: 图层)

图层

请参考父层,例如容器或组件。

将其用作公式或其他函数的一部分。

父级(图层名称: 图层).属性

文本或数字

请参照父图层的属性。了解更多关于图层属性。

示例: layer("矩形 1").x

矩形 1 在其父图层中的 x 坐标

示例: layer("Oval 1").opacity

椭圆 1 及其父图层的不透明度

初始化(图层名称: 图层, 图层属性: 文本)

文本或数字

返回特定图层属性的初始值(在任何交互之前)。了解更多有关图层属性的信息。

示例:

initial("矩形 1").x

矩形 1 的初始 x 坐标

示例:

initial("椭圆 1,不透明度")

椭圆 1 的初始不透明度

示例:

initial("输入 1,文本")

输入 1 中的初始文本

相对坐标

toLayerX(containerName: LAYER, x: NUMBER, y: NUMBER)

数字

将相对于屏幕的 x 坐标转换为相对于容器或组件的对应 x 坐标。容器或组件内各图层的坐标默认是相对于其所在的容器或组件。

例如,如果您想根据相对于屏幕的位置(100, 200)获取相对于容器 `Container 1` 的 x 坐标,请使用以下函数:

toLayerX(`容器 1`, 100, 200)

根据相对于屏幕的 x 坐标 `100`,返回相对于 `Container 1` 的 x 坐标。

toLayerY(容器名称: 图层, x: 数字, y: 数字)

数字

将相对于屏幕的 y 坐标转换为相对于容器或组件的对应 y 坐标。容器或组件内各图层的坐标默认是相对于其所在的容器或组件。

例如,如果你想根据相对于屏幕的位置 (100, 200) 获取相对于容器 `Container 1` 的 y 坐标,请使用以下函数:

toLayerY(`容器 1`, 100, 200)

根据相对于屏幕的 x 坐标 `100`,返回相对于 `Container 1` 的 x 坐标。

toScreenX(容器名称: 图层, x: 数字, y: 数字)

数字

将相对于容器或组件的 x 坐标转换为相对于屏幕的对应 x 坐标。容器或组件内图层的坐标默认是相对于其所在的容器或组件。

例如,如果您想根据相对于容器 `Container 1` 的位置 (10, 20) 获取相对于屏幕的 x 坐标,请使用以下函数:

toScreenX(`容器 1`, 10, 20)

根据相对于 `Container 1` 的 x 坐标 `10`,返回相对于屏幕的 x 坐标。

toScreenY(containerName: LAYER, x: NUMBER, y: NUMBER)

数字

将相对于容器或组件的 y 坐标转换为相对于屏幕的对应 y 坐标。容器或组件内图层的坐标默认是相对于其所在的容器或组件。

例如,如果你想根据相对于容器 `Container 1` 的位置 (10, 20) 获取相对于屏幕的 y 坐标,请使用以下函数:

toScreenY(`容器 1`, 10, 20)

根据相对于 `Container 1` 的 y 坐标 `20`,返回相对于屏幕的 y 坐标。

toLayerX(containerName: LAYER, x: NUMBER, y: NUMBER)

数字

将相对于屏幕的 x 坐标转换为相对于容器或组件的对应 x 坐标。容器或组件内各图层的坐标默认是相对于其所在的容器或组件。

例如,如果您想根据相对于屏幕的位置(100, 200)获取相对于容器 `Container 1` 的 x 坐标,请使用以下函数:

示例:

initial("矩形 1").x

根据相对于屏幕的 x 坐标 `100`,返回相对于 `Container 1` 的 x 坐标。

toLayerY(容器名称: 图层, x: 数字, y: 数字)

数字

将相对于屏幕的 y 坐标转换为相对于容器或组件的对应 y 坐标。容器或组件内各图层的坐标默认是相对于其所在的容器或组件。

例如,如果你想根据相对于屏幕的位置 (100, 200) 获取相对于容器 `Container 1` 的 y 坐标,请使用以下函数:

示例:

initial("矩形 1").x

根据相对于屏幕的 x 坐标 `100`,返回相对于 `Container 1` 的 x 坐标。

toScreenX(容器名称: 图层, x: 数字, y: 数字)

数字

将相对于容器或组件的 x 坐标转换为相对于屏幕的对应 x 坐标。容器或组件内图层的坐标默认是相对于其所在的容器或组件。

例如,如果您想根据相对于容器 `Container 1` 的位置 (10, 20) 获取相对于屏幕的 x 坐标,请使用以下函数:

示例:

initial("矩形 1").x

根据相对于 `Container 1` 的 x 坐标 `10`,返回相对于屏幕的 x 坐标。

toScreenY(containerName: LAYER, x: NUMBER, y: NUMBER)

数字

将相对于容器或组件的 y 坐标转换为相对于屏幕的对应 y 坐标。容器或组件内图层的坐标默认是相对于其所在的容器或组件。

例如,如果你想根据相对于容器 `Container 1` 的位置 (10, 20) 获取相对于屏幕的 y 坐标,请使用以下函数:

示例:

initial("矩形 1").x

根据相对于 `Container 1` 的 y 坐标 `20`,返回相对于屏幕的 y 坐标。

时间与日期

注意:时间与日期函数遵循 ISO8601 格式

当前时间()

文本

检索当前时间信息。

示例: timeNow()

17:44:50.123

时间(小时: NUMBER,分钟: NUMBER,秒: NUMBER)

文本

使用提供的小时、分钟和秒值构建一个时间对象,并以标准的“小时:分钟:秒”格式显示时间。

示例: time(14, 50, 23)

14:50:23

小时()

数字

以24小时制检索并返回给定时间中的小时部分。该函数以时间值作为输入,提取小时部分,并将其作为数值返回。

示例: hour("17:44:30")

17

分钟()

数字

提取并返回给定时间(24 小时制)的分钟部分。

示例: minute("17:44:30")

44

第二()

数字

提取并返回给定时间(24 小时制)的分钟部分。

示例: second("17:44:30")

30

diffTime()

数字

计算两个时间点之间的差值,并以小时、分钟和/或秒返回持续时间。

示例: diffTime("17:45:30", "18:45:30", "H")

1

示例: diffTime("17:45:30", "18:45:30", "M")

60

示例: diffTime("17:45:30", "18:45:30", "S")

3600

格式化时间()

数字

将时间值转换为人类可读的字符串,并遵循指定的格式模式。

示例: formatTime("11:44:30", "HHa")

上午11点

示例: formatTime("11:44:30", "HHam mm")

上午11点 44

示例: formatTime("11:44:30", "hh:mm a")

上午11:40

dateNow()

数字

在执行时检索并返回当前日期。

示例: dateNow()

2023年9月22日

日期(年: 数字,月: 数字,日: 数字)

文本

使用提供的年、月、日值构造一个日期对象,并以“年-月-日”格式返回。

示例: date(2014, 12, 8)

2014-12-08

年()

数字

从“年-月-日”日期字符串中提取并返回年份部分。

示例: year("2014-12-08")

2014

月份()

数字

从“年-月-日”格式的日期中提取并返回月份部分。

示例: month("2014-12-08")

12

天()

数字

从“年-月-日”格式的日期中提取并返回“日”部分。

示例: day("2014-12-08")

8

DiffDate()

数字

计算两个日期之间的差值,并根据指定的单位("Y"、"M"、"D"、"YD"、"YM"、"MD")以数值形式返回。注意:如果“to”日期早于“from”日期,结果将为 -1。

示例: diffDate("1973-02-24", "1969-05-16", "Y")

-1

示例: diffDate("1973-02-24", "1969-05-16", "M")

-1

示例: diffDate("1973-02-24", "1969-05-16", "D")

-1

示例: diffDate("1969-05-16", "1973-02-24", "Y")

3

示例: diffDate("1969-05-16", "1973-02-24", "M")

45

示例: diffDate("1969-05-16", "1973-02-24", "D")

1380

示例: diffDate("1969-05-16", "1973-02-24", "MD")

8

示例: diffDate("2023-01-01", "2023-02-10", "MD")

9

示例: diffDate("1969-05-16", "1973-02-24", "YM")

9

示例: diffDate("1969-05-16", "1973-02-24", "YD")

284

示例: diffDate("2023-01-01", "2023-02-10", "YD")

40

格式化日期()

文本

根据提供的日期值和格式字符串返回格式化的日期字符串。

示例: formatDate("2023-06-01", "DD/MM/YYYY")

2023年1月6日

示例: formatDate("2023-06-01", "YYYY MMMM dddd")

2023年6月 星期四

示例: formatDate("2023-06-01", "MMM DD, YY")

2023年6月1日

epochtodate(时间戳: 数字)

文本

将 Unix 纪元时间戳(毫秒)转换为 UTC 日期时间表示形式。

示例: epochtodate (0)

1970-01-01T00:00:00Z

示例: epochtodate (-1)

1969-12-31T23:59:59.999Z

示例: epochtodate (1)

1970-01-01T00:00:00.001Z

示例: epochtodate (1655908429662)

1970-01-01T00:00:00.001Z

epochtodate(时间戳: 数字, 格式: 文本)

文本

根据指定格式将 Unix 时间戳转换为可读的日期/时间字符串。

示例: epochtodate (1695316200000)

2023年9月21日17:10:00(UTC)

示例: epochtodate (1695316200000, "hh:mm")

17:10

当前时间()

文本

检索当前时间信息。

示例: timeNow()

17:44:50.123

时间(小时: NUMBER,分钟: NUMBER,秒: NUMBER)

文本

使用提供的小时、分钟和秒值构建一个时间对象,并以标准的“小时:分钟:秒”格式显示时间。

示例: time(14, 50, 23)

14:50:23

小时()

数字

以24小时制检索并返回给定时间中的小时部分。该函数以时间值作为输入,提取小时部分,并将其作为数值返回。

示例: hour("17:44:30")

17

分钟()

数字

提取并返回给定时间(24 小时制)的分钟部分。

示例: minute("17:44:30")

44

第二()

数字

提取并返回给定时间(24 小时制)的分钟部分。

示例: second("17:44:30")

30

diffTime()

数字

计算两个时间点之间的差值,并以小时、分钟和/或秒返回持续时间。

示例:

diffTime("17:45:30", "18:45:30", "H")

1

示例:

diffTime("17:45:30", "18:45:30", "M")

60

示例:

diffTime("17:45:30", "18:45:30", "S")

3600

格式化时间()

数字

将时间值转换为人类可读的字符串,并遵循指定的格式模式。

示例:

formatTime("11:44:30", "HHa")

上午11点

示例:

formatTime("11:44:30", "HHam mm")

上午11点 44

示例:

formatTime("11:44:30", "hh:mm a")

上午11:40

dateNow()

数字

在执行时检索并返回当前日期。

示例: dateNow()

2023年9月22日

日期(年: 数字,月: 数字,日: 数字)

文本

使用提供的年、月、日值构造一个日期对象,并以“年-月-日”格式返回。

示例: date(2014, 12, 8)

2014-12-08

年()

数字

从“年-月-日”日期字符串中提取并返回年份部分。

示例: year("2014-12-08")

2014

月份()

数字

从“年-月-日”格式的日期中提取并返回月份部分。

示例: month("2014-12-08")

12

天()

数字

从“年-月-日”格式的日期中提取并返回“日”部分。

示例: day("2014-12-08")

8

DiffDate()

数字

计算两个日期之间的差值,并根据指定的单位("Y"、"M"、"D"、"YD"、"YM"、"MD")以数值形式返回。注意:如果“to”日期早于“from”日期,结果将为 -1。

示例:

diffDate("1973-02-24", "1969-05-16", "Y")

-1

示例:

diffDate("1973-02-24", "1969-05-16", "M")

-1

示例:

diffDate("1973-02-24", "1969-05-16", "D")

-1

示例:

diffDate("1969-05-16", "1973-02-24", "Y")

3

示例:

diffDate("1969-05-16", "1973-02-24", "M")

45

示例:

diffDate("1969-05-16", "1973-02-24", "D")

1380

示例:

diffDate("1969-05-16", "1973-02-24", "MD")

8

示例:

diffDate("2023-01-01", "2023-02-10", "MD")

9

示例:

diffDate("1969-05-16", "1973-02-24", "YM")

9

示例:

diffDate("1969-05-16", "1973-02-24", "YD")

284

示例:

diffDate("2023-01-01", "2023-02-10", "YD")

40

格式化日期()

文本

根据提供的日期值和格式字符串返回格式化的日期字符串。

示例:

formatDate("2023-06-01", "DD/MM/YYYY")

2023年1月6日

示例:

formatDate("2023-06-01", "YYYY MMMM dddd")

2023年6月 星期四

示例:

formatDate("2023-06-01", "MMM DD, YY")

2023年6月1日

epochtodate(时间戳: 数字)

文本

将 Unix 纪元时间戳(毫秒)转换为 UTC 日期时间表示形式。

示例:

epochtodate (0)

1970-01-01T00:00:00Z

示例:

epochtodate (-1)

1969-12-31T23:59:59.999Z

示例:

epochtodate (1)

1970-01-01T00:00:00.001Z

示例:

epochtodate (1655908429662)

1970-01-01T00:00:00.001Z

epochtodate(时间戳: 数字, 格式: 文本)

文本

根据指定格式将 Unix 时间戳转换为可读的日期/时间字符串。

示例:

epochtodate (1695316200000)

2023年9月21日17:10:00(UTC)

示例:

epochtodate (1695316200000, "hh:mm")

17:10

在 ProtoPie School 的大师课中了解更多

想进一步了解如何在 ProtoPie 中使用函数?加入 ProtoPie 的大师课,获取本说明文档中所列部分函数的详细示例和使用指导。