在图6.13的交互流程还有一个“*”分支,它是接受用户的新输入,响应类型设置为文本输入响应“Text Entry”,返回类型设置为“Try Again”,其计算图标里无须写代码,但是为了正常运行,我们输入了“--”注释标志符号作为它的内容,否则运行的时候总会提示错误信息。
最后,图6.9中的“注册号码”分支就设计制作完毕,同理我们可以制作“注册姓名”和“注册组织”两个分支,比较简单的方式是拷贝“注册号码”分支后进行相应的修改即可,这样注册信息输入交互流程的设计就大功告成,下面我们开始设计程序主流程。
2、程序主流程的设计与实现
1)初始化光标位置
我们返回到图6.9的主程序流程中,首先拖入一个计算图标“初始光标位置”,写入如下代码:
PressKey("Ctrl1") --程序开始自动切换到“注册姓名”文本输入框
login:=0 --初始化自定义变量,作为永久交互的条件
2)设计注册程序背景
接着设计交互图标里的背景,双击交互图标“注册”进入背景编辑画面,导入需要的注册背景图,然后在三个文本输入框的相应位置分别写入文本{Temp1}、{Temp2}
和{Temp3},如下图6.14所示:

图6.14 输入动态文本{Temp1}
为了使{Temp1}、{Temp2}和{Temp3}文本根据用户的输入而动态改变,还必须选中其图标的显示属性的“Update Displayed Variables”选项,如图6.15所示。

图6.15 设置变量的Update显示属性
3)设计注册输入程序交互流程
首先根据前面的介绍把“注册姓名”、“注册组织”和“注册号码”三个模块剪贴到交互的右边,并设置为热区交互,热区的位置和大小与三个信息的文本输入框对应,热区的返回类型设置为“Try Again”,热区的响应属性设置如图6.16一致,同时分别设置热区的快捷间Key为“CtrlX”、“CtrlC”和“CtrlV”,并选择为永久交互“Perpetual”,“Active If“条件为“login=0”。

图6.16 注册姓名分支热区响应设置
4)设计注册验证及其它程序流程
从图6.6的执行效果可以看到我们还设计了三个交互按钮操作“确定”、“重填”、“取消”,其中“确定”分支的二级子流程如下图6.17所示,其作用是判断注册码的正确性,并执行相应的子程序,即输入正确注册码则继续执行主程序,错误则退出程序。图6.17中计算图标“判断注册信息”的内容为(默认正确注册码为8888-8888-8888):
Reg:=Replace("-","8",Temp3) --替换”-“为”8”
if Reg="88888888888888" then --注册码判断
login:=1 --停止永久交互
EraseAll() --擦除过时画面
GoTo(IconID@"成功") --执行成功子程序
else
GoTo(IconID@"失败") --执行失败子程序
end if

图6.17 验证注册码流程图
这样一个完整的注册码验证程序就完成了,你可以把他作为一个通用模块应用于自己的Authorware作品中。
本实例中的密码算法比较简单,只是根据用户输入的注册码文本格式化为数字文本后进行判断,在实际应用中,需要的复杂程度就由你自己发挥拉!可能你还会有个疑问,如何判断用户是否为已注册用户呢?因为Authorware打包文件本身是不具备数据交换功能的,其实你可以在Authorware作品程序里把用户成功注册的信息写入一个文本文件,例如sn.txt,然后把sn.txt保存为sn.dll并存放于用户系统根目录下,这样就神不知鬼不觉咯。
但是需要添加一个功能模块,每次执行程序前先判断sn.dll里面的注册信息是否正确,具体的实现函数这里就不描述了,可以查看Authorware系统函数的相关文件(File)控制函数。