ApeML组成 - 区块
fap模拟程序由ApeML编写。
ApeML由主要由“脚本区块”、“模拟区块”组成。
一、脚本区块

一个简单的脚本示例:
1、请点击“新建”按钮创建一个新的fap模拟程序。
2、请在“树形视图”中点选“脚本区块”,然后点击“复制”按钮创建新的脚本区块。
3、请在新建的“脚本区块”中输入以下代码:
win.messageBox("hello world!")
4、请点击“更新”按钮保存脚本。
5、最后我们点击“回放热键”(默认为Ctrl+Alt+K),运行效果如下:
二、模拟区块
每次按“录制热键”以后都将创建新的“模拟区块”,模拟区块由“模块锚点”,“模块事件”组成。
“模块事件”是您录制的一组鼠标键盘事件。

“模块锚点”记录录制时的一些环境信息(自动抓点、抓图、记录窗体参数)在回放时起自动定位、控制“模块事件”的作用。
模拟精灵通过“模块锚点”,简化了复杂的鼠标键盘编程,使之高度抽象化,是鼠标键盘模拟编程的划时代的革新,具有重要的意义。
“模块锚点”主要有两个作用,如下:
- 作为“定位点”,起一个自动定位的作用,保证录制的鼠标键盘指令不会发错目标。
如果在您回放模拟程序时,“自动定位”失败,就会
自动触发相应节点的“
失败处理指令”
您可以预先设定以下指令。
- _CMD_LOOP 循环指令 : 这个指令指示模拟精灵不断重试,直到自动定位成功。
- _CMD_NEXT 继续指令 : 这个指令指示模拟精灵忽略当前节点的错误,继续执行后面的判断或指令。
- _CMD_OUT 跳出指令 : 这个指令指示模拟精灵在定位失败时离开当前模拟区块,继续执行后面的其他区块。
- 执行脚本 执行您添加的LAScript脚本,并在脚本中通过return语句返回以上三个指令之一。
例如下面的脚本在锚点定位失败以后跳转到指定的区块,并通过_CMD_OUT指令离开当前区块: 失败="ape:setNextPosition('失败后我要转向的区块名字');return _CMD_OUT;"

- 作为“控制点”,起一个提纲挈领的作用。通过控制并移动锚点,从而自动移动“模块事件”里所有指令的坐标。
如果把模拟区块比喻为一个箱子,而“模块事件”则是装在箱子里的一组鼠标键盘指令。
“模块锚点”则是箱子的手柄,箱子柄到哪里,自然箱子里的所有鼠标事件也就到了哪里。
再比喻我们移动桌面上的windows窗体,只要拖动标题栏就可以,实际上这个拖动标题栏而移动整个窗体的过程,
简单的说,也就是拖动一个点从而移动一个整体。锚点作为控制点正是起这样一个作用。。

三、回放区块的顺序
模拟程序是顺序回放每个区块并自动循环的。
1、区块的默认回放顺序
在点击“回放运行”热键或以其他方式启动一个fap模拟程序以后。模拟精灵会依次读取全部区块,
并按设置的循环次数从前向后。从上向下按默认的顺序回放。
我们可以通过点击“上移”“下移”按钮改变一个区块的位置。

2、什么是回放指针
模拟程序会为每个区块赋于一个回放指针,回放指针实际上就是区块在模拟程序中的位置。
第一个区块的回放指针为1。第二个区块的回放指针为2.....
每运行一个区块完毕,“回放指针”自动加一,模拟程序总是运行“回放指针”指向的区块。
我们可以通过下面的脚本代码改变回放指针,从而改变下一个回放的区块。
ape:setNextPosition(("指定下一个区块的名字")
--可以增加判断代码分析具体的情况然后跳转到指定的位置(这个功能在后面会详细介绍)。
ape对象还有很多好用的函数,在编辑器中输入 ape: 在输入“:”号以后将会自动列出所有可用的函数。
鼠标移动到函数上,将会显示相应函数的说明。
编辑器支持代码自动完成、代码智能提示。在您输入代码时会自动在「代码提示窗口」显示相关代码。
按键盘上的上下方向键移动光标、或者在「代码提示窗口」上移动鼠标可以选定需要的代码并查看相关说明。
用鼠标拖动「代码提示窗口」上的滚动条可以快速翻页,按键盘PageDown、PageUP可以快速翻页,按Home键滚动到第一页,按End键滚动到最后一页。
直接按回车键、或者鼠标双击选定的代码输入到编辑器中。
按ESC键、或者用鼠标左键在「代码提示窗口」以外的部份单击关闭自动完成窗口,不输入选定的代码。
按 Ctrl + j 快捷键可以强制显示「代码提示窗口」。
四、为区块添加延时
通过修改区块的延时参数,在回放区块以后增加延时过程。延时单位为毫秒(千分之一秒)。
