教程

5

阅读时间

使用组件实现可用的星级评分

在本课中,您将学习如何使用组件和变量为您的原型制作一个星级评分面板。

王天阳, 蒙纳士大学设计专业学生

简介

星级评分通常用于收集用户与应用内容互动方式的相关反馈。它可作为应用的可视化评价。不过,实现星级评分功能可能会相当繁琐。实现方法有很多,但有些方法在手动操作时会非常累人。借助 ProtoPie,你可以在几分钟内轻松构建星级评分功能。本教程将介绍如何使用组件、变量以及 send & receive 来实现这一效果。

你将学到什么

  1. 为每个组件实例赋予一个特殊数字,以设置其唯一标识

  2. 点击时使用该唯一标识点亮当前及之前的星星

最后,你将能够做出这样的效果!


Star Rating Prototype Made With ProtoPie

[起始 Pie 文件] [完成版 Pie 文件]

分步说明

为每个组件实例赋予一个特殊数字,以设置其唯一标识

1. 打开“Star”组件。

创建好一个星星组件后,在你的工作场景中创建它的 5 个实例。完成后,打开主 Star 组件。

💡为什么要使用组件?

当对象具有相似行为时,我们会使用组件。在这个例子中,5 颗星星都具有相似行为。使用组件还可以避免一遍又一遍地为交互对象添加触发器/响应这种重复且繁琐的工作。

2. 为“Star”组件添加一个“number”变量。

下一步是给 Star 组件添加一个 number 变量。我们会确保勾选该变量的 Make Overridable 选项。这样做是为了给每个 Star 子实例设置唯一标识。


Add a "number" variable for the "Star" component.

💡 什么是 make overridable?

Make overridable 表示组件的每个实例都可以在该变量上拥有不同的初始值。在这个例子中,我们用它为每个子组件设置唯一标识。

勾选 Make Overridable 选项后,回到主工作场景,按顺序将各个 Star 子实例的数字从(1 到 5)分别设置好。这样就为每个 Star 子实例设置了唯一标识。


Change the individual Star child instance numbers from (1 to 5)

点击时使用唯一标识点亮当前及之前的星星

1. 向“Star”组件添加 Tap 触发器和 Send 响应。

 a. 现在回到主 Star 组件。我们希望在点击星星后触发特定响应,所以需要添加一个 Tap 触发器。在 Tap trigger 下添加一个 Send response


Under the Tap trigger, add a Send response.

 b. 将响应中的消息设置为“tapped”。这表示该星星实例被点击了。勾选 Send Value Together 选项,并将值设置为“number”变量。这样会保存被点击Star 子实例的 number


Tick the Send Value Together option and set the value as the "number" variable

💡 消息会发送到哪里?

消息会发送到主场景中的所有“Star”实例,包括被点击的“Star”实例本身。

2. 向 Star 组件添加 Receive 触发器,并再创建一个名为“tapped_number”的变量。

 a. 设置好 Send 响应后,我们希望接收来自被点击 Star 实例的一些响应。所以先创建一个变量,并命名为“tapped_number”。


Create a variable first and name it "tapped_number"

 b. 添加一个 Receive 触发器,将消息设置为“tapped”,并勾选 Assign to Variable 选项。选择将其赋值给变量 tapped_number。这样会返回主场景中被点击的 Star 实例的 number 值。


Add a Receive trigger and set the message as "tapped"

3. 点击时点亮当前及之前的星星。

 a. 在 Receive 触发器下添加一个条件。将条件设置为 number ≤ tapped_number。在该条件下为 Vector 图层添加一个 Color 响应。将颜色响应的 Fill 设置为 #FDC97D(颜色可根据你的原型而变化)。这将确保被点击“Star”实例之前的“Star”实例会改变颜色。


Set the condition as number ≤ tapped_number

 b. 在 Receive 触发器下再添加一个条件。将条件设置为 number > tapped_number。在 Vector 图层上添加一个 Reset 响应。这将确保被点击“Star”实例之后的“Star”实例不会改变颜色。


Set the condition as number > tapped_number

💡 它是如何工作的?

当点击某个 Star 实例时,该 Star 实例会发送消息来更新其他 Star 实例,决定它们是否应被点亮。

恭喜!

你已顺利完成这些步骤,做得很好。这其实很简单直接,对吧?用 ProtoPie 制作星级评分就像小菜一碟。亲自试试看吧。

[有帮助吗?告诉我们!]