viple入门(五)

(1)自定义活动

自定义活动,用来创建新的组件、服务、函数或者其他代码模块,使用最多的是创建函数。

函数是对一个功能的封装,在调用的时候执行,没有调用的时候则不执行。函数可能有参数,可能没有参数,如果有参数,则是形式参数,主要用于占位置。在调用时,如果函数有形式参数,则需要传递实际参数,即传参。

在viple中,把活动拖到Main中,即为调用。

自定义活动中,可以没有形式参数,也可以有一个形式参数,也可以有多个形式参数。

1.创建自定义活动

拖一个自定义活动到Main中,右键选择Rename进行重命名,命名要根据封装的功能来进行命名,达到见名之意的目的。

在自定义活动print上双击,进入print自定义活动中,找到Modify Inputs右侧的黄色按钮,点击该按钮可创建形式参数。

第1种情况:不传递参数

进入print自定义活动后,不创建形式参数。直接编写逻辑即可

Main中拖入一个数据,并将值写为2。将数据传入到自定义活动print中,弹出数据连接,左边的Value对应的是实际参数,右边的Taget对应的是形式参数,由于没有参数传递,所以,实际参数和形式参数都是空白,点击确定即可

效果:

该程序等价于以下程序:

上面的程序,不过是把行打印封装到了自定义活动print中而已。其他的地方需要打印的时候,可以复用自定义活动print,实现了对打印功能的封装。

第2种情况:传递1个形式参数

上一个案例中,没有进行传参,所以,程序可以直接改为为不带有自定义活动的形式。

假设有一个需求,有的人要打印数字1、有的人要打印数字2、还有的人要打印数字3

还有可能:有的人打印1颗星(*),有的人打印2颗星(**),有的人打印3颗星(***)

不使用自定义活动,则程序如下:

但是,如果我们要打印是100嘞,10000颗星嘞,使用拷贝复制的方法,肯定能做,但程序就比较庞大了,且需要大量的时间。此时,我们需要使用循环和自定义活动来解决该问题。

首先创建一个自定义活动,用于打印数字N,当传入的是1,则打印1,;传入的是2,则打印2,闯入的是3,则打印3,传入的是n,则打印n。现在不知道具体打印数字几,所以,设置一个形式参数占位置。

编写打印n的逻辑

需要注意的是,由于该自定义活动会用到多次,且后期打算放在循环中,所以,打印后,需要将输出连接到右侧的三角形位置(三角形表示输出值,Outgoing value;圆圈表示通知,即notifications,在自定义事件中会用到)

注意:形式参数的引用方法为:instance.形式参数名称

Main中编写循环,获取到数字1、2、3,并分别将这三个数传入printN中即可,所以,首先需要使用循环打印出数字1、2、3

接下来,把图中的

修改为自定义活动,也就是

根据Target中的形式参数n去找对应的实际参数number,并填写上,实现参数传递

整体程序以及测试结果如下:

第3种情况:传递2个形式参数

假设需要计算两个数相加,此时,不知道具体是哪两个数相加,所以,需要设置两个形式参数占位置,整体的自定义活动就是做加法功能,综上,自定义活动的名称可以设置为add,形式参数有两个,可以分别设置为a和b。注意:形式参数a和b的类型是整型,后面传递参数的时候,实际参数的类型也必须为整型。

编写两个数相加的逻辑

接下来进入Main中,编写实际参数

传递参数:将与并活动的输出连接到自定义活动add的输入,弹出数据连接窗口,此时,根据Target中的形式参数去找对应的实际参数,a表示的第一个加数,对应的实际参数是first,所以,将first写在Value侧的第一个位置,表示的含义是:占位的形参a,对应的实际参数是first,因为first的值是100,所以a的值就是100了,。同样的道理,b对应的是second,其值为200。

将计算结果打印并测试

如果将数据活动中的两个值分别改为300,400,则计算结果为700。

(2)自定义事件

事件分为两种类型,内建事件和自定义事件,在之前的博客中已经写了内建事件(按键事件和释键事件)

自定义事件:系统没有封装好的事件,需要用户自行定义如何触发。

简单的自定义事件案例:

首先创建自定义活动,内容为数据活动,并将值写为2,将输出连接到圆形(触发事件,并且能将值一并返回

程序分析:数据活动连接到圆形,可以触发事件,并且输出值2,触发到自定义事件后,将数据2进行了打印。

稍微复杂的自定义事件案例:

案例:当计数器数到8的时候,触发自定义事件,并执行后续程序。

由于需要传递一个参数进来,故在自定义活动test中设置一个形式参数,来接收外部的数据8。

Main中:

测试

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值