autojs打包后找不到控件

JavaScript017

autojs打包后找不到控件,第1张

取消勾选即可找到控件。

1、先停止宏的运行,因为宏在执行中,引用菜单是灰色的,无法选择。

2、在工具菜单中,打开引用。

3、打开引用窗口后,在可以用的引用列表中,将有丢失、MISSING、找不到等字样的项目全部取消勾选。

4、保存后,即可正常打开使用。

1~坐标点击就是直接点击某个点,这个点是固定的,所以在不同分辨率兼容性差,所以不推荐使用,不详说,主要说说其他几个

2~控件点击是autojs左右特点的一项功能,它是基于安卓的无障碍功能的,在软件上有很好的支持,但是游戏就不行了。具体的教程很多,不多说了,就说说我在使用时踩得一些坑。

①有些控件能用autojs的工具找到,但是写出来后却识别不出来,手动滑动一下屏幕就能找到了,不知道是不是BUG,所以加个判断,防止找不到脚本出错

②寻找控件建议不要用findOne()、waitFor()、exists()等一些会阻塞的方法,不然稍微出现一点其他事件就会阻塞,导致脚本莫名其妙的卡死,使用findOne(timeout)、findonce()时可以加个判断在不为null的时候再点击或其他操作,因为没找到返回null,直接click就会报错,脚本停止运行,要是是找的父或者子控件也写到判断里

③找图找色特别消耗内存,所以在能用控件就用控件,找图找色在找到后要用recycle()来对创建的图像对象回收,提高脚本稳定,让脚本能持续运行更长时间,截图也需要一定的时间

④如果脚本有悬浮窗,使用找图要注意不要将要找的图遮挡

⑤控件中使用text比id要靠谱一些,在一些软件中id是会改变的

ps:如果有问题可以在评论区评论,会的我会解答,不定时更新,可以点点关注和小心心哦

在控件的clickable属性为false时,可以使用控件的bounds属性来定位其位置,并通过点击坐标来实现单击操作。在您提供的信息中,bounds属性的值为(31,77,47,106),这代表了该控件在屏幕上的位置信息。具体来说,这个值表示该控件的左上角坐标为(31,77),右下角坐标为(47,106)。

因此,您可以通过计算出该控件的中心坐标,然后在该坐标处实现单击操作。示例代码如下:

scssCopy codelet widget = id("back_iv").findOne()

let bounds = widget.bounds()

let centerX = (bounds.left + bounds.right) / 2

let centerY = (bounds.top + bounds.bottom) / 2click(centerX, centerY)

上述代码中,首先获取到了控件对象,然后获取了该控件的bounds属性,并计算出了该控件的中心坐标(centerX, centerY)。最后,通过click方法在该坐标处实现了单击操作。