函数:widget.find 查找控件
函数功能: 根据属性组合查找控件
函数方法
wid,tab = widget.find(tb)
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
tb.id | string | 否 | 控件 ID,可以使用 IDE 的控件节点进行获取 |
tb.text | string | 否 | 文本,可以使用 IDE 的控件节点进行获取 |
tb.type | string | 否 | 类型,可以使用 IDE 的控件节点进行获取 |
tb.desc | string | 否 | 描述,可以使用 IDE 的控件节点进行获取 |
tb.path | string | 否 | 路径,可以使用 IDE 的控件节点进行获取 |
tb.rule | number | 否 | 默认为 0 - 完全匹配,1 - 部分匹配,2 - 开头匹配, 3 - 结尾匹配,仅支持 text、type、desc 参数 |
tb.long-clickable | string | 否 | 是否可以长按,false - 不可以长按,ture - 可以长按, 仅支持 v1.0.1 及其以上版本 |
tb.clickable | string | 否 | 是否可以点击,fasle - 不可点击,true - 可以点击, 仅支持 v1.0.1 及其以上版本 |
tb.scrollable | string | 否 | 是否可以滚动,false - 不可以滚动,true - 可以滚动, 仅支持 v1.0.1 及其以上版本 |
tb.editable | string | 否 | 是否可以编辑,false - 不可以编辑,ture - 可以编辑, 仅支持 v1.0.1 及其以上版本 |
tb.checkable | string | 否 | 是否可以选中,false - 不可以选中,true - 可以选中, 仅支持 v1.0.1 及其以上版本 |
tb.which | number | 否 | 不写默认为 1,指定第几个控件, 仅支持 v1.0.2 及其以上版本客户端 |
返回值 | 类型 | 说明 |
---|---|---|
wid | userdata/nil | 查找成功则返回控件对象,失败返回空 |
tab | table | 返回 id、text、type、desc 等包含 tb 的所有信息, 仅支持 v1.0.3 及其以上版本客户端 |
函数用例
--除控件函数外请勿将其他积木编程函数用于触动精灵,同理请勿将触动精灵函数用于积木编程
mSleep(1000)
wid,tab =widget.find({["text"]="浏览器"})
if wid ~= nil then
mSleep(1000)
toast("控件已找到")
mSleep(1000)
--点击控件
widget.click(wid)
for k,v in pairs(tab) do
toast(k .. ":" .. (type(v) == "boolean" and (v and "true" or "false") or v),5)
mSleep(2000)
end
else
mSleep(1000)
toast("控件未找到",5)
mSleep(5000)
end
注意事项
使用此函数不要使用 widget 做变量,否则会导致报错。
如果要调多个此控件的控件对象,需要按照顺序进行调用,同时返回多个控件对象只会保存最后一个控件对象,可以理解为控件对象保存位置是只有一个,返回多个对象会覆盖之前的控件对象。
函数:widget.desc 根据描述属性查找控件
函数功能: 根据描述属性查找控件
函数方法
wid= widget.desc(desc,rule);
wid= widget.desc(desc,{rule,which});
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
desc | string | 是 | 要查找的描述信息,可以使用 IDE 的控制节点进行获取 |
rule | number | 否 | 不写默认为 0 - 完全匹配 ,1 - 部分匹配,2 - 完全匹配, 3 - 开头匹配,4 - 结尾匹配 |
which | number | 否 | 不写默认为 1,指定第几个控件, 仅支持 v1.0.2 及其以上版本客户端 |
函数用例
--在显示积木编程图标的页面运行
--除控件函数外请勿将其他积木编程函数用于触动精灵,同理请勿将触动精灵函数用于积木编程
mSleep(1000)
desc = "积木编程"
wid = widget.desc(desc,1)
--wid = widget.desc(desc,{["rule"]=1,["which"]=1})
if wid ~= nil then
mSleep(1000)
toast("控件已找到")
mSleep(1000)
--点击控件
widget.click(wid)
else
mSleep(1000)
toast("控件未找到",5)
mSleep(5000)
end
注意事项
使用此函数不要使用 widget 做变量,否则会导致报错。
如果要调多个此控件的控件对象,需要按照顺序进行调用,同时返回多个控件对象只会保存最后一个控件对象,可以理解为控件对象保存位置是只有一个,返回多个对象会覆盖之前的控件对象。
函数:widget.id 根据属性查找控件
函数功能: 根据属性查找控件
函数方法
wid = widget.id(id)
wid = widget.id(id,{which})
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
id | string | 是 | 要查找的控件 ID,可以使用 IDE 的控制节点进行获取 |
which | number | 否 | 不写默认为 1,指定第几个控件, 仅支持 v1.0.2 及其以上版本客户端 |
返回值 | 类型 | 说明 |
---|---|---|
wid | userdata/nil | 查找成功则返回控件对象,失败返回空 |
函数用例
--脚本页面运行,找右上角的新建脚本按钮
--除控件函数外请勿将其他积木编程函数用于触动精灵,同理请勿将触动精灵函数用于积木编程
mSleep(1000)
id = "com.play4u.luabox:id/iv_script_new"
wid = widget.id(id)
--wid = widget.id(id,{["which"]=1})
if wid ~= nil then
mSleep(1000)
toast("控件已找到")
mSleep(1000)
--点击控件
widget.click(wid)
else
mSleep(1000)
toast("控件未找到",5)
mSleep(5000)
end
注意事项
使用此函数不要使用 widget 做变量,否则会导致报错。
如果要调多个此控件的控件对象,需要按照顺序进行调用,同时返回多个控件对象只会保存最后一个控件对象,可以理解为控件对象保存位置是只有一个,返回多个对象会覆盖之前的控件对象。
函数:widget.text 根据文本属性查找控件
函数功能: 根据文本属性查找控件
函数方法
wid = widget.text(text,rule)
wid = widget.text(text,{rule,which})
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
text | string | 是 | 文本属性,可以使用 IDE 的控件节点进行获取 |
rule | number | 否 | 不写默认为 0 - 完全匹配 ,1 - 部分匹配,2 - 开头匹配,3 - 结尾匹配 |
which | number | 否 | 不写默认为 1,指定第几个控件,仅支持 v1.0.2 及其以上版本客户端 |
返回值 | 类型 | 说明 |
---|---|---|
wid | userdata/nil | 查找成功则返回控件对象,失败返回空 |
函数用例
--在脚本页面,找左上角的脚本文字
--除控件函数外请勿将其他积木编程函数用于触动精灵,同理请勿将触动精灵函数用于积木编程
mSleep(1000)
text="脚本"
wid = widget.text(text,1)
--wid = widget.text(text,1,{["which"]=1})
if wid ~= nil then
mSleep(1000)
toast("控件已找到")
mSleep(1000)
--点击控件
widget.click(wid)
else
mSleep(1000)
toast("控件未找到",5)
mSleep(5000)
end
注意事项
- 使用此函数不要使用 widget 做变量,否则会导致报错。
- 如果要调多个此控件的控件对象,需要按照顺序进行调用,同时返回多个控件对象只会保存最后一个控件对象,可以理解为控件对象保存位置是只有一个,返回多个对象会覆盖之前的控件对象。
函数:widget.region 获取控件的区域属性
函数功能: 获取控件区域坐标范围
函数方法
x1,y1,x2,y2 = widget.region(wid)
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
wid | userdata | 是 | 控件对象 |
返回值 | 类型 | 说明 |
---|---|---|
x1 | string | 区域左上角横坐标,找不到返回 nil |
y1 | string | 区域左上角纵坐标,找不到返回 nil |
x2 | string | 区域右下角横坐标,找不到返回 nil |
y2 | string | 区域有下级角纵坐标,找不到返回 nil |
函数用例
--在脚本页面,找左上角的脚本文字
--除控件函数外请勿将其他积木编程函数用于触动精灵,同理请勿将触动精灵函数用于积木编程
mSleep(1000)
wid = widget.find({["id"]="com.play4u.luabox:id/iv_script_new"})
if wid ~= nil then
x1,y1,x2,y2 = widget.region(wid)
if x1 ~= nil then
event.tap(x1,y1);
else
mSleep(1000)
toast("区域获取为空",5)
mSleep(5000)
end
else
mSleep(1000)
toast("控件未找到",5)
mSleep(5000)
end
注意事项
使用此函数不要使用 widget 做变量,否则会导致报错。
如果要调多个此控件的控件对象,需要按照顺序进行调用,同时返回多个控件对象只会保存最后一个控件对象,可以理解为控件对象保存位置是只有一个,返回多个对象会覆盖之前的控件对象。
函数:widget.longclickable 判断控件是否可以长按
函数功能: 判断控件获取是否可以长按
函数方法
flag = widget.longclickable(wid)
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
wid | userdata | 是 | 控件对象 |
返回值 | 类型 | 说明 |
---|---|---|
flag | boolean | true - 可以长按,false -不可以长按 |
函数用例
--在脚本页面,右上角的创建脚本按钮
--除控件函数外请勿将其他积木编程函数用于触动精灵,同理请勿将触动精灵函数用于积木编程
mSleep(1000)
wid = widget.find({["id"]="com.play4u.luabox:id/iv_script_new"})
if wid ~= nil then
flag = widget.longclickable(wid)
if flag then
mSleep(1000)
toast("此控件可以长按",5)
mSleep(5000)
else
mSleep(1000)
toast("此控件不支持长按",5)
mSleep(5000)
end
else
mSleep(1000)
toast("控件未找到",5)
mSleep(5000)
end
注意事项
使用此函数不要使用 widget 做变量,否则会导致报错。
如果要调多个此控件的控件对象,需要按照顺序进行调用,同时返回多个控件对象只会保存最后一个控件对象,可以理解为控件对象保存位置是只有一个,返回多个对象会覆盖之前的控件对象。
函数:widget.checkable 判断控件是否可勾选
函数功能: 判断控件是否可以勾选
函数方法
flag = widget.checkable(wid)
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
wid | userdata | 是 | 控件对象 |
返回值 | 类型 | 说明 |
---|---|---|
flag | boolean | true - 可以勾选,false - 不可以勾选 |
函数用例
--在删除脚本页面,长按要删除的脚本可以进入此页面,全选按钮
--除控件函数外请勿将其他积木编程函数用于触动精灵,同理请勿将触动精灵函数用于积木编程
mSleep(1000)
wid = widget.find({["id"]="com.play4u.luabox:id/cb_select"})
if wid ~= nil then
flag = widget.checkable(wid)
if flag then
mSleep(1000)
toast("此控件可以勾选",5)
mSleep(5000)
else
mSleep(1000)
toast("此控件不支持勾选",5)
mSleep(5000)
end
else
mSleep(1000)
toast("控件未找到",5)
mSleep(5000)
end
注意事项
使用此函数不要使用 widget 做变量,否则会导致报错。
如果要调多个此控件的控件对象,需要按照顺序进行调用,同时返回多个控件对象只会保存最后一个控件对象,可以理解为控件对象保存位置是只有一个,返回多个对象会覆盖之前的控件对象。
函数:widget.scrollable 判断控件是否可滚动
函数功能: 判断控件是否可以滚动
函数方法
flag = widget.scrollable(wid)
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
wid | userdata | 是 | 控件对象 |
返回值 | 类型 | 说明 |
---|---|---|
flag | boolean | true - 可以滚动,false - 不可以滚动 |
函数用例
--脚本界面运行
--除控件函数外请勿将其他积木编程函数用于触动精灵,同理请勿将触动精灵函数用于积木编程
mSleep(1000)
wid = widget.find({["id"]="com.play4u.luabox:id/item_rl_top"})
if wid ~= nil then
flag = widget.scrollable(wid)
if flag then
mSleep(1000)
toast("此控件可以滚动",5)
mSleep(5000)
else
mSleep(1000)
toast("此控件不可以滚动",5)
mSleep(5000)
end
else
mSleep(1000)
toast("控件未找到",5)
mSleep(5000)
end
注意事项
使用此函数不要使用 widget 做变量,否则会导致报错。
如果要调多个此控件的控件对象,需要按照顺序进行调用,同时返回多个控件对象只会保存最后一个控件对象,可以理解为控件对象保存位置是只有一个,返回多个对象会覆盖之前的控件对象。
函数:widget.editable 获取控件是否可以输入
函数功能: 判断控件是否可以输入
函数方法
flag = widget.editable(wid)
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
wid | usedata | 是 | 控件对象 |
返回值 | 类型 | 说明 |
---|---|---|
flag | boolean | true - 可以输入文字,false - 不支持输入文字 |
函数用例
--脚本页面 点击新建脚本按钮 输入文字
--除控件函数外请勿将其他积木编程函数用于触动精灵,同理请勿将触动精灵函数用于积木编程
mSleep(1000)
wid = widget.find({["id"]="com.play4u.luabox:id/iv_script_new"})
if wid ~= nil then
widget.click(wid)
mSleep(3000)
wid1 = widget.find({["id"]="com.play4u.luabox:id/et_content"})
--判断新建脚本页面是否打开
if wid1 ~= nil then
--判断是否支持输入文字
flag = widget.editable(wid1)
if flag then
mSleep(1000)
toast("此控件支持输入",5)
mSleep(5000)
--输入文字
widget.setText(wid,"输入")
else
mSleep(1000)
toast("此控件不支持输入",5)
mSleep(5000)
end
else
mSleep(1000)
toast("控件未找到",5)
mSleep(5000)
end
else
mSleep(1000)
toast("控件未找到",5)
mSleep(5000)
end
注意事项
使用此函数不要使用 widget 做变量,否则会导致报错。
如果要调多个此控件的控件对象,需要按照顺序进行调用,同时返回多个控件对象只会保存最后一个控件对象,可以理解为控件对象保存位置是只有一个,返回多个对象会覆盖之前的控件对象。
函数:widget.visibleToUser 控件是否可见
函数功能: 判断控件是否可见
函数方法
flag = widget.visibleToUser(wid)
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
wid | usedata | 是 | 控件对象 |
返回值 | 类型 | 说明 |
---|---|---|
flag | boolean | true - 可见控件,false - 不可见控件 |
函数用例
--脚本页面新脚本按钮
--除控件函数外请勿将其他积木编程函数用于触动精灵,同理请勿将触动精灵函数用于积木编程
mSleep(1000)
wid = widget.find({["id"]="com.play4u.luabox:id/iv_script_new"})
if wid ~= nil then
flag = widget.visibleToUser(wid)
if flag then
mSleep(1000)
toast("可见控件",5)
mSleep(5000)
else
mSleep(1000)
toast("不可见控件",5)
mSleep(5000)
end
else
mSleep(1000)
toast("控件未找到",5)
mSleep(5000)
end
注意事项
使用此函数不要使用 widget 做变量,否则会导致报错。
如果要调多个此控件的控件对象,需要按照顺序进行调用,同时返回多个控件对象只会保存最后一个控件对象,可以理解为控件对象保存位置是只有一个,返回多个对象会覆盖之前的控件对象。
函数:widget.enabled 判断控件是否可以激活
函数功能: 判断控件是否可以激活
函数方法
flag = widget.enabled(wid)
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
wid | usedata | 是 | 控件对象 |
返回值 | 类型 | 说明 |
---|---|---|
flag | boolean | true - 可以激活,false - 不可以激活 |
函数用例
--脚本页面运行
--除控件函数外请勿将其他积木编程函数用于触动精灵,同理请勿将触动精灵函数用于积木编程
mSleep(1000)
wid = widget.find({["id"]="com.play4u.luabox:id/iv_script_new"})
if wid ~= nil then
flag = widget.enabled(wid)
if flag then
mSleep(1000)
toast("此控件可以激活",5)
mSleep(5000)
else
mSleep(1000)
toast("此控件不可以激活",5)
mSleep(5000)
end
else
mSleep(1000)
toast("控件未找到",5)
mSleep(5000)
end
注意事项
使用此函数不要使用 widget 做变量,否则会导致报错。
如果要调多个此控件的控件对象,需要按照顺序进行调用,同时返回多个控件对象只会保存最后一个控件对象,可以理解为控件对象保存位置是只有一个,返回多个对象会覆盖之前的控件对象。
函数:widget.clickable 判断控件是否可点击
函数功能: 判断控件是否可以点击
函数方法
flag = widget.clickable(wid)
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
wid | userdata | 是 | 控件对象 |
返回值 | 类型 | 说明 |
---|---|---|
flag | boolean | true - 可以点击,false - 无法点击 |
函数用例
--在脚本页面,右上角的新建脚本按钮是否可以点击
--除控件函数外请勿将其他积木编程函数用于触动精灵,同理请勿将触动精灵函数用于积木编程
mSleep(5000)
wid = widget.find({["id"]="com.play4u.luabox:id/iv_script_new"})
if wid ~= nil then
flag = widget.clickable(wid)
if flag then
mSleep(1000)
toast("此控件可以点击",5)
mSleep(5000)
--点击控件
widget.click(wid)
else
mSleep(1000)
toast("此控件不支持点击",5)
mSleep(5000)
end
else
mSleep(1000)
toast("控件未找到",5)
mSleep(5000)
end
注意事项
使用此函数不要使用 widget 做变量,否则会导致报错。
如果要调多个此控件的控件对象,需要按照顺序进行调用,同时返回多个控件对象只会保存最后一个控件对象,可以理解为控件对象保存位置是只有一个,返回多个对象会覆盖之前的控件对象。
函数:widget.selected 获取控件选中状态
函数功能: 判断控件是否可以选中
函数方法
flag = widget.selected(wid)
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
wid | userdata | 是 | 控件对象 |
返回值 | 类型 | 说明 |
---|---|---|
flag | boolean | true - 可以选中,false - 不可以选中 |
函数用例
--脚本界面运行
--除控件函数外请勿将其他积木编程函数用于触动精灵,同理请勿将触动精灵函数用于积木编程
mSleep(1000)
wid = widget.find({["id"]="com.play4u.luabox:id/item_rl_top"})
if wid ~= nil then
flag = widget.selected(wid)
if flag then
mSleep(1000)
toast("此控件可以选中",5)
mSleep(5000)
else
mSleep(1000)
toast("此控件不可以选中",5)
mSleep(5000)
end
else
mSleep(1000)
toast("控件未找到",5)
mSleep(5000)
end
注意事项
使用此函数不要使用 widget 做变量,否则会导致报错。
如果要调多个此控件的控件对象,需要按照顺序进行调用,同时返回多个控件对象只会保存最后一个控件对象,可以理解为控件对象保存位置是只有一个,返回多个对象会覆盖之前的控件对象。
函数:widget.checked 判断控件勾选状态
函数功能: 判断控件是否勾选
函数方法
flag = widget.checked(wid)
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
wid | userdata | 是 | 控件对象 |
返回值 | 类型 | 说明 |
---|---|---|
flag | boolean | true - 已勾选,false - 未勾选 |
函数用例
--在删除脚本页面,全选按钮是否勾选
--除控件函数外请勿将其他积木编程函数用于触动精灵,同理请勿将触动精灵函数用于积木编程
mSleep(1000)
wid = widget.find({["id"]="com.play4u.luabox:id/cb_select"})
if wid ~= nil then
flag = widget.checked(wid)
if flag then
mSleep(1000)
toast("此控件已勾选",5)
mSleep(5000)
else
mSleep(1000)
toast("此控件未勾选",5)
mSleep(5000)
end
else
mSleep(1000)
toast("控件未找到",5)
mSleep(5000)
end
注意事项
使用此函数不要使用 widget 做变量,否则会导致报错。
如果要调多个此控件的控件对象,需要按照顺序进行调用,同时返回多个控件对象只会保存最后一个控件对象,可以理解为控件对象保存位置是只有一个,返回多个对象会覆盖之前的控件对象。