常见错误操作

 

一、误以为修改回放模式可以影响录制模式

修改回放模式只对回放有影响,并不影响录制。

二、没有正确的理解目标控件

在模拟精灵中可以使用锚点中的“目标控件”自动输入文本
“目标控件”实际上也就是输入焦点。

简单的说,焦点在哪个控件上,或者说光标出现在哪个文本框里,
这就是一个焦点控件了。焦点控件,也就是模拟精灵中的“目标控件”。

在录制开始的时候,模拟精灵会创建模拟区块,我们按下任意键创建锚点,
并抓取当前焦点控件作为锚点中的“目标控件”。

但是这时候通常会犯一个错误,很多用户以为,
我在录制的时候点哪个文本框,那么他就是“目标控件”了,
也是输入焦点了。这样的理解是错误的。

“目标控件”是在你按任意键以前的输入焦点,
也就是说,在录制以前,就要点击指定的文本框使之获得焦点成为“目标控件”,
然后再开始录制。

这个过程,简称为“点录点”(点击文本框,录制,再点击)缺一不可。

三、没有正确的区分字符串与数字

字符串通常会放在引号中间,而数字不是放在引号中的。
例如:ape:setNextPosition("1") 与 ape:setNextPosition(1)是不同的。

ape:setNextPosition("1") 的参数是一个字符串,
指示下一个运行的区块其名字为"1"。

ape:setNextPosition(1) 的参数是一个数字,
指示下一个运行的区块是第一个区块。

再看下面的代码

win.consoleOpen();
print("1"==1); -->显示false,字符串与数字不相等

四、没有正确的区分大小写

ApeML与 LAScript都是区分大小写的。

img 与 IMG 不是同一个变量,

例:

img = image.new();
IMG:capture(); --出错了


上面的代码肯定会出错,第一句你创建了一个图像对象赋值给img变量。
而第二句中大定IMG是一个没有定义的变量,即一个空值,所以IMG:capture();一定会出错。

正确的写法是:

img = image.new();
img:capture();

五、没有正确的启用抓图与抓点节点

如果你在录制模拟区块以后,希望使用“抓图移动”或者“抓点移动”的功能,
应当在录制以后立即点击“锚点-->抓点移动(或抓图移动)”然后选定“启用”,最后点击“更新”

如果没有启用“抓图移动”或者“抓点移动”,
那么在读写fap文件、重新编译生成模拟程序以后,相应的图片数据会被自动清理。
这样做的目的是自动清除大量无用的数据。

使用“读取源代码->重新编译生成”的方法减小fap模拟程序的体积。

注意“简易抓点”无论是不是启用都不会被清除。

六、视图编辑以后没有读取新的源代码直接编辑旧的源代码

「视图界面」中显示的数据与「源码编辑器」中的数据不是自动同步的。
在「视图界面」编辑模拟程序以后,必须到源代码中点击「读取源代码」读取最新的代码。

如果你没有读取最新的源代码而是直接修改旧的源代码,然后点击「编译生成」。
那么就会覆盖掉你在视图界面编辑或添加的内容。

七、用记事本编辑已经被模拟精灵独占打开的fap文件

模拟精灵当前打开的fap文件已经关联到缓存,可能被自动更新,
如果这时候你用记事本进行编辑,那么你有可能会发现所有的编辑都会被还原。
正确的方法,对于已经用模拟精灵打开的fap文件,应使用“源码编辑器”进行编辑。

或者在“源码编辑器”使用“源码另存为”导出源代码到其他文件再用记事本编辑。

八、录制硬件指令时按键速度太快

录制硬件指令时按键太快可能会导致部份键盘事件被丢失。
如果您在录制时发现有部份鼠标键盘事件没有被录制下下,应当适应减慢按键的速度。

九、在模拟区块的开始或结束录制热键

因为模拟精灵会自动清除模拟区块开始或结束处的热键记录。
所以不要把热键放在模拟区块的开始或结束。

十、编写LASscript时使用非法循环

例:

while( true ) do
    --这样的循环永远都不会停止
end;


正确的写法至少应当用nStop()函数判断用户有没有按下「全部停止」热键,如下:

while( nStop() ) do
    --在用户按下停止热键后退出循环
end;