点击此处查看最新的网赚项目教程

大家好,我是公众号3分钟学堂的郭立员,如果你喜欢我的文章,欢迎进入我的公众号介绍页面,点击右上角3个点,星标我的公众号,可以第一时间收到我的文章更新通知。

下拉框_下拉框_下拉框

前言

下拉框的多级联动在写脚本时不是很常用,我们平时用到多级联动有:

①地址选择:

省=>市=>区=>街道

②游戏关卡:

第几章=>第几节=>关卡难度

一、什么是多级联动

比如有两个下拉框,第一个的内容是省份,第二个的内容是地级市,当第一个下拉框选择不同的省份时,第二个下拉框会自动切换对应省份的地级市。

下拉框_下拉框_下拉框

二、多级联动的原理

(一)查看静态界面哪些元素可以修改的命令uip.GetAttribute

想要修改静态界面上的元素,就要知道这些元素哪些属性是可以修改的,我们可以通过以下的代码获取,以我们本期的下拉框为例:

下拉框_下拉框_下拉框

界面包含两个元素:下拉框、按钮

界面1:{    标签页1:    {        下拉框:{名称:"下拉框1",选择响应:"函数名1",选项:["选项1","选项2","选项3"],初始选项:0,注释:"初始选项是可选属性,默认值为0。模版中设置了三个选项,您可以根据需要增加或减少,注意各选项之间用逗号分隔。"},        按钮:{名称:"按钮1",显示内容:"查看",点击响应:"查看",文字大小:0,高度:0,宽度:0,注释:"文字大小、高度、宽度是可选属性,如需使用默认值,可保持值为0或直接删除此属性"},    },}

界面函数:

Function 查看()  Dim m=uip.GetAttribute("下拉框1")  showmessage encode.tabletojson(m)End Function

点击按钮运行函数:

下拉框_下拉框_下拉框

通过showmessage命令可以看到下拉框有2个属性可以获取到:

①初始选项:此属性是当前下拉框被选中的序号,也就是选择了第几个选项

②选项:每个选项的名称,如例子中的选项1、选项2、选项3

(二)修改静态界面元素的属性,使用命令uip.SetAttribute

知道元素的哪些属性可以修改以后,就针对性修改,还是以下拉框为例

①uip.SetAttribute命令的参数填写

uip.SetAttribute(元素名称,属性列表)

元素名称:下拉框1

属性列表:注意这个参数不是字符串是列表,如{“初始选项”:1}

下拉框_下拉框_下拉框

②看一下代码:

界面1:{    标签页1:    {        下拉框:{名称:"下拉框1",选择响应:"函数名1",选项:["选项1","选项2","选项3"],初始选项:0,注释:"初始选项是可选属性,默认值为0。模版中设置了三个选项,您可以根据需要增加或减少,注意各选项之间用逗号分隔。"},        按钮:{名称:"按钮1",显示内容:"修改",点击响应:"修改",文字大小:0,高度:0,宽度:0,注释:"文字大小、高度、宽度是可选属性,如需使用默认值,可保持值为0或直接删除此属性"},    },     }

界面函数

Function 修改()  uip.SetAttribute("下拉框1",{"初始选项":1})End Function

点击按钮运行函数

界面中选择的选项由“选项1”变成“选项2”。

(三)下拉框怎么产生联动效果

这里需要介绍一下下拉框“选择响应”的一个特性,这个函数触发会有一个返回值,返回当前选择的“初始选项”的值,比如你选择了第一个选项,就返回0,第二个选项就返回1,以此类推。

界面1:{    标签页1:    {        下拉框:{名称:"下拉框1",选择响应:"函数名1",选项:["选项1","选项2","选项3"],初始选项:0,注释:"初始选项是可选属性,默认值为0。模版中设置了三个选项,您可以根据需要增加或减少,注意各选项之间用逗号分隔。"},    },}

Function 函数名1(n)  showmessage nEnd Function

可以看到这个函数Function函数名1(n),它是有参数的,当我们用showmessage命令输出这个参数,会发现输出结果就是下拉框的初始选项。

这个下拉框选择响应独有的特点~

当然也有可代替它的代码

Function 函数名1()  Dim m=uip.GetAttribute("下拉框1")  showmessage m["初始选项"]End Function

知道了这个特点以后,那就可以做联动了。

比如有两个下拉框,第一个是省(直辖市),第二个是下属城市

下拉框_下拉框_下拉框

当我们第一个下拉框选择不同的省市,第二个下拉框就要切换到对应的下属城市。

这种修改一个下拉框的选项后,另一个下拉框随之变化,就是联动。

怎么用第一个下拉框控制第二个下拉框呢?

使用“选择响应”的返回值:

当第一个下拉框选择第一个省市时,返回值=0,修改第二个下拉框的选项为第一个省市的下属城市。

当第一个下拉框选择第二个省市时,返回值=1,修改第二个下拉框的选项为第二个省市的下属城市。

当第一个下拉框选择第三个省市时,返回值=2,修改第二个下拉框的选项为第三个省市的下属城市。

代码如下:

界面1:{  标签页1:  {    水平布局:    {      下拉框:      {        名称:"下拉框1",        选择响应:"选择",        选项:["天津","北京","河北省"],        初始选项:0,        注释:"初始选项是可选属性,默认值为0。模版中设置了三个选项,您可以根据需要增加或减少,注意各选项之间用逗号分隔。"      },        下拉框:      {        名称:"下拉框2",        选择响应:"函数名1",        选项:["城市"],        初始选项:0,        注释:"初始选项是可选属性,默认值为0。模版中设置了三个选项,您可以根据需要增加或减少,注意各选项之间用逗号分隔。"      },        },    },  }

界面函数代码:

Function 选择(n)    If n = 0 Then     uip.SetAttribute("下拉框2",{"选项":{"和平","南开","河西"}})    ElseIf n = 1 Then    uip.SetAttribute("下拉框2",{"选项":{"朝阳","海淀","丰台"}})    ElseIf n = 2 Then    uip.SetAttribute("下拉框2",{"选项":{"石家庄","保定","唐山"}})    End IfEnd Function

下拉框_下拉框_下拉框

(四)这么写的会出现一个bug

正常情况当我们点击保存界面后,界面上的元素设置就会保存在配置文件中,之后再次打开界面时,界面会读取配置文件,“还原”上一次保存的界面设置。

配置文件存储格式:

{"下拉框1":2,"下拉框2":1}

配置文件对于每一个界面元素只存储两个数据,元素名称和某一个属性值,这个属性值不同元素是不一样的。

输入框是初始文本;

多选框是选中;

下拉框是初始选项;

正常情况是可以完整还原的,但是当我们使用了联动后,发现第二个下拉框是“没有”读取配置文件,导致界面看起来没有保存成功。

这里不是没有读取配置文件,而是读取后被快速修改了,看起来像没有读取。

造成这个bug的原因是:

下拉框的选择响应事件是默认执行的,也就是说你点不点下拉框,都会执行界面函数。

在我们函数中并没有修改初始选项,所以会用默认值0,

怎么解决这个bug?

既然是快速修改造成的bug,那么再次打开界面激活选择响应事件时,在函数中修改初始选项我们就不要用0,而是原本是什么值就用什么值。

Function 选择(n)    Dim 下拉框2 = UIP.GetAttribute("下拉框2")    showmessage  下拉框2["初始选项"]    If n = 0 Then         uip.SetAttribute("下拉框2",{"选项":{"和平","南开","河西"},"初始选项":下拉框2["初始选项"]})    ElseIf n = 1 Then        uip.SetAttribute("下拉框2",{"选项":{"朝阳","海淀","丰台"},"初始选项":下拉框2["初始选项"]})    ElseIf n = 2 Then        uip.SetAttribute("下拉框2",{"选项":{"石家庄","保定","唐山"},"初始选项":下拉框2["初始选项"]})    End IfEnd Function

在修改之前,先记录下拉框的初始选项的属性值,把它作为修改操作的参数。

这种方法的优点是保证第二个下拉框存储的不会“丢失”。

缺点是在修改第一个下拉框后,第二个下拉框的选项不是从第一个开始。

比如,我存储的天津的下属城市是第二个南开选项,当我修改省市为北京时,北京对应的第二个下拉框,也会是第二个选项,而不是从第一个选项开始。

当然这个缺点,我个人觉得是可以接受的,如果想要解决这个缺点,我想到的方法就是读取配置文件,然后比对第一个下拉框有没有修改。

但考虑到配置文件的路径,测试和打包不一样,为了改一个不是特别重要的问题,有点得不偿失。

【测试】脚本调试阶段,配置文件路径是:新版和老版按键助手路径不同。

/sdcard/MobileAnJian/UIConfig/       //老版按键助手/sdcard/MobileAnJianVip/UIConfig/    //新版按键助手

【打包】脚本打包后,配置文件路径是:

/data/data/"&包名&"/files/script.cfg

苹果路径不常写忘记了。

=正文完=

公众号文章并不是及时分发给粉丝,所以弄个微信群,我更新文章后第一时间转发的群里,大家可以扫下方二维码加群。

下拉框_下拉框_下拉框

如果有其他问题可以加我的微信(xiaomu86119),或扫下方二维码

下拉框_下拉框_下拉框

———————————-

推荐:

———END———
限 时 特 惠: 本站每日持续更新海量各大内部创业教程,一年会员只需98元,全站资源免费下载 点击查看详情
站 长 微 信: cai842612