动态改变按钮的标签、菜单项的文字等功能,在先前版本的Authorware中都是通过间接方法实现的,Authorware 6.5开始直接支持变量作为按钮标签,菜单项文字,甚至是键盘输入及文本输入响应,这个功能改进极大方便了某些应用场合,例如实现双语言选择的多媒体作品等等。
简单的中英文切换界面
我们通过一个简单的实例--"简单的中英文切换界面"来认识Authorware 6.5的这一新改进功能。在演示范例中,将用变量来实现动态的切换中英文语言界面。
1、新建一个"VarButton.a6p",如图1所示建立"EntoCHN"、"DisplayLanguage"两个自定义变量,其中"EntoCHN"为按钮标签变量,默认值为字符串"Chinese","DisplayLanguage"为控制语言显示的条件变量,条件值为"1"显示英文界面,条件值为"2"则显示中文界面,默认值为"1"显示英文界面。
图 1 建立自定义变量
2、参数初始化
添加一个计算图标"Initialize"到流程线上,写入以下代码:
SetWindowText(WindowHandle,"Example of Authorware 6.5")
Initialize(EntoCHN)
Initialize(DisplayLanguage)
其中SetWindowText为Winapi.u32的一个封装函数,功能是设置窗体的标题栏文字。
3、添加中英文对译文字内容
拖放一个决策图标到流程线上并命名为"2Language",打开决策图标的属性设置对话框(快捷方式:按住Ctrl键,同时双击选择该决策图标,将出现如图2所示的属性对话框),选择Repeat项为"Don't Repeat",Branch项为"To Calculated Path",计算条件框填入变量DisplayLanguage 。
继续在决策图标右边添加两个两个显示图标"English"和"Chinese",分别用文本工具输入两段对译的文字(如图3)。同时选择它们的决策路径属性的Erase Contents项为"Don't Erase"。
图2决策图标的属性设置
图3 中英文对译文字内容
4、设计动态中英文界面切换交互
添加一交互图标"Change"到流程线上,继续添加一计算图标"ChangeLanguage"到其右边并选择为Button按钮响应交互,打开按钮响应交互的Button属性,设置按钮的标签(Label)为自定义变量:EntoCHN(如图4)
打开计算图标"ChangeLanguage"输入以下控制脚本代码:
if DisplayLanguage=1 then
SetWindowText(WindowHandle,"实例剖析Authorware 6.5")
EntoCHN:="英 语"
EraseIcon(/mailto:IconID@"English")
DisplayIcon(/mailto:IconID@"Chinese")
DisplayLanguage:=2
else
SetWindowText(WindowHandle,"Example of Authorware 6.5")
EntoCHN:="Chinese"
EraseIcon(/mailto:IconID@"Chinese")
DisplayIcon(/mailto:IconID@"English")
DisplayLanguage:=1
end if
图4 设置按钮标签为变量EntoCHN
5、存盘,最后完成的流程图如图5所示,执行效果如图6所示。
图5 完整程序流程图
图6简单的中英文切换界面 执行效果
变量控制的菜单
Authorware 6.5的下拉菜单响应中的下拉菜单也支持变量了,看看下面一个简单的例子--显示当前日期的菜单。
1、设计程序流程图,如图7所示。在交互图标"当前日期"右边添加一下拉菜单交互"Variable",打开下拉菜单响应交互的菜单属性,在"Menu Item"菜单项域里输入表达式:"当前日期:"^FullDate
图 7显示当前日期的菜单 流程设计
2、存盘后执行,效果如图8所示。
图8显示当前日期的菜单 范例效果
同样,Authorware 6.5中的按键交互响应和文本输入响应都支持变量控制,设计使用方法和上面的范例相似,这里就不再赘述。(如图9和图10)。
图9 Keypress按键交互响应
图10 Text Entry文本输入响应