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

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

菜单

函数

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

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

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

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

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

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 的大师课,获取本说明文档中所列部分函数的详细示例和使用指导。