- 按键工程师
- 742060
- 2281
- 5
- 881 朵
- 10799 个
- 580 个
- 48300
- 2011-08-18
|
1#
t
T
发表于 2016-04-05 18:24
|
|只看楼主
零基础,轻松学习安卓按键,大家好,我是山海师~~~ 前两篇教程我们学习了触控和判断循环命令,这次我们就来学习下重要的知识:封装函数--function , sub 函数的使用在脚本编写中非常频繁, 可以通过函数编写的好坏来鉴定一个脚本的效率. 这篇教程就给大家介绍下函数的封装,以及调用函数的方法 | >>>>总目录贴入口<<<<用于封装的命令主要有两个: Function 和 Sub 两个命令的功能基本上相同, 只是Function 除了包含Sub的功能外,还可以额外的附带函数返回值, 所以基本上在实际应用中更多的会选择使用Function 命令封装函数.
封装函数的功能就相当于把一段需要重复使用的代码, 装在一个盒子里, 在其他地方需要使用这段代码的时候, 就把这个盒子里的代码拿出来用. 这样就可以避免了一段代码重复的编写.可以缩短代码的长度. 并且适当的时候调用函数可以让代码整体看上去非常的简洁明了. | 就和宠物小精灵一样~~平时放在精灵球里,需要的时候再把精灵球一丢~~~~~
命令名称 | Function | 命令功能 | 定义、封装一个函数 | 命令参数 | 函数名:任意有效标识符。 执行语句:任意有效代码语句。 自定义参数:可选参数,允许多个,任意有效标识符 | 返回值 | 可选,自定义返回值
| 在封装和使用函数时需要注意几点1、函数中不能直接再次封装函数 2、使用Call调用函数的时候,不管函数是否有参数,都需要加上括号 3、可以直接使用函数名称来调用函数,直接使用名称调用函数的时候可以不加括号 4、要返回值的函数必须要在函数名后加上括号 5、函数返回值只有在函数结束退出时才会返回 | 简单的范例: - Call 加法计算(1,5)
- Function 加法计算(v, v1)
- TracePrint v+v1
- End Function
复制代码 这段代码就是很简单的一个能够用来计算两个参数之和的函数。用function 把代码封装起来之后, 可以使用call + 函数名 来调用这个函数。
上面的这段范例是不带返回值的函数, 那下面就再说下函数返回值。 什么是函数返回值?简单的说就是当调用这个函数之后,函数在结束后本身会返回一个值给你。返回的可以是一个字符串或者整数型数据甚至可以是数组。你可以使用这个返回值进行下一步操作。 |
带返回值的函数:- TracePrint "1+5=" & 加法计算(1,5)
- Function 加法计算(v, v1)
- 加法计算 = v+v1
- End Function
复制代码 上面代码就是附带函数返回值的用法,函数中把参数v和参数v1两个相加的值作为函数的返回值。 赋值返回值的时候也很简单,只要把函数的名称当成是变量名来用就行了。
命令名称 | Sub | 命令功能 | 定义、封装一个子程序 | 命令参数 | 子程序名:任意有效标识符 执行语句:任意有效代码语句 自定义参数:可选参数,允许多个,任意有效标识符 | 返回值 | 无
|
sub的用法和Function一致。 唯一的区别就是sub函数不能有返回值。只能直接被调用。- Call 加法计算(1,5)
- Sub 加法计算(v, v1)
- TracePrint v+v1
- End Sub
复制代码 什么情况下我们需要把代码封装成函数进行调用呢?把需要重复调用的代码封装起来,这样可以极大的减少了代码行数,并且在使用的时候方便。比如我们时常会遇到需要滑屏的操作,需要使用touchdown命令来进行滑屏,但是一整套命令写下来太麻烦了,如果每次滑屏都需要好几行代码来实现,那就太累了。这种情况我们就可以把这滑屏的功能封装成函数,之后只要调用函数就可以实现滑屏。- Function SwipeEx(x, y, x1, y1, t)
- TouchDown x, y, 1
- TouchMove x1, y1, 1, t
- Delay 300
- TouchUp 1
- End Function
- //用1000毫秒的时间从200, 100滑动到500, 100
- Call SwipeEx(200, 100, 500, 100, 1000)
- //用2000毫秒的时间从100, 562滑动到966,582
- Call SwipeEx(100, 562, 966, 582, 2000)
复制代码这样就可以大大的缩短代码长度 把独立的功能模块封装成函数进行调用,这样做的最大的好处就是可以让代码看上去简洁有序,提升代码的可读性和逻辑结构稳定性,同时也方便了之后代码的后期维护。我们来用两端同样功能的代码对比下 - Tap 520, 663
- Delay 500
- InputText 账号
- Delay 1000
- Tap 200, 600
- InputText 密码
- Delay 3000
- Tap 500, 900
- Tap 486, 695
- Delay 3000
- Do
- Tap 500, 980
- Delay 1000
- Loop
复制代码- Call 输入账号(账号, 密码)
- Delay 1000
- Call 登录()
- Call 执行任务()
- Function 输入账号(账号,密码)
- Tap 520, 663
- Delay 500
- InputText 账号
- Delay 1000
- Tap 200, 600
- InputText 密码
- End Function
- Function 登录
- Tap 500, 900
- Delay 5000
- End Function
- Function 执行任务
- Tap 486, 695
- Delay 3000
- Do
- Tap 500, 980
- Delay 1000
- Loop
- End Function
复制代码大家对比下这两端代码,哪段看着更易懂?上面的代码把所有功能步骤全部写在一起,如果不加注释的话很可能过段时间自己都忘了哪部分是什么功能了(并且不加注释是新手很容易犯的小错误)。而第二段代码,把每个单独的部分封装成函数,代码主体只需要分别调用这些函数就够了,简单明确。后期也好维护,哪段有问题就改哪段,不用动其他的部分。 赠人玫瑰手有余香~~~你的一个顺手回复也许就可以让这个帖子给更多的人看到,就能帮助更多的人~~~
|