Authorware菜单的改进

时间:2022-08-19 10:49:44

Authorware菜单的改进

摘要:利用Authorware外部扩展函数,对Authorware中的菜单进行改进,在Authorware中实现了多级菜单和右键弹出菜单。

关键词:Authorware;外部扩展函数;多级菜单;弹出菜单

0引言

Authorware提供了"Pull-Down Menu”这种交互方式,利用它可以制作出菜单。不过,与常见的多级Windows标准菜单相比,它的菜单大为逊色,而右键弹出菜单就更无法制作。其实,在Authorware的安装程序中,Macromedia公司为我们准备了一些外部扩展函数,利用它们,可以制作出多级Windows标准菜单和右键弹出菜单。

1必需的外部扩展函数

这里我们要借助Authorware的外部扩展函数:Winapi.u32和tMsControls.u32来制作多级标准Windows菜单和右键弹出菜单,这两个外部扩展函数是免费U32(UserCode),在Authorware安装目录里可以找到。Winapi.u32的导入方法如下:单击"window"菜单中的"function"项,显示"Load function"操作窗口;在文件名一栏输入Winapi.u32,单击“打开按纽”,显示“Custom functions inWINAPI.U32";按住Ctrl键,在"name:"一栏中选对应的函数后单击"Load"按钮即完成。tMsControls.u32函数的导入方法相同。

所需的Winapi.u32函数与功能描述:

GetMenu(WindowHandle):获取窗体菜单的句柄

GetSubMenu(menuhandle,npos):获取用户菜单的句柄

RemoveMenu(menuhandle,position,flag):从窗体中擦除指定菜单

DrawMenuBar(WindowHandle):显示窗体菜单

InsertMenu(submenuhandlel,positon,flag,submenuhandle2,

newsubmenuname):向submenuhandl增加一个新条目,位置

position,名字newsubmenuname,增加方式由flag决定

tMsControls.u32必需的部分函数与功能描述:

tMsCreatePopupList(windowHandle):创建一个弹出菜单,控制并

返回该菜单的句柄

tMsAddltem(ControlHandie。menultemNo,submenultemNo,

menuText):菜单中增加一个条目

tMsDisplayControl(ControlHandle。X,Y。Width。Height,Return):

在指定位置显示菜单

2制作多级标准菜单

2.1原有File菜单的擦除

在用Authorware的菜单交互制作菜单时,Authorware总会在菜单栏上加一个"File"菜单。这个"File”菜单是多余的,所以先去掉这个"File"菜单。

在主流程线上拖一个交互图标,命名为"File",在其右侧放一个群组图标(内容为空),在弹出的"Response Type,’对话框中,选择“Pull-Down Menu”(菜单交互)。双击群组图标上方的小方块,弹出属性对话框,在“Response”选项卡中,将"Perpetual"复选项选中。

在交互图标的下方,放一个擦除图标,双击打开擦除图标的属性对话框,则同时交互图标的演示窗口也会被打开。用鼠标单击交互图标演示窗口标题栏上的“File”菜单,演示窗口中的"File"菜单会随之消失,点击确认完成。如图1所示。

2.2多级菜单的制作

制作步骤如下:

(1)建立“文件”和“编辑”菜单。在流程线上拖放一个交互图标,命名为“文件”,在其右侧放一个群组图标,在弹出的“Response Type"对话框中,选择"Pull-Down Menu”,将这个组图标命名为“新建”。双击群组图标上方的矩形色块,在弹出的“Properties:Response"对话框中,点击"Response"选项卡,选中其中的“Perpetual”复选项,并将“Branch”的值选为“Return”。继续添两个这样的群组图标,分别命名为“保存”、“退出”。

(2)建立“块操作”菜单。按同样的方法,在主流程线上再放一个交互图标,其右侧也放两个群组图标,分别命名为“撤消”、“查找”。各项设置同上面的步骤一样。这个菜单是要作为下一级菜单插入到“编辑”菜单中的。

(3)添加程序代码。在主流程线下方加一个计算图标,命名为“menu script”,双击打开窗口,输入如下内容:

menuhandle:=GetMenu(WindowHandIe)

file_handle:=GetSubMenu(menuhandIe,0)

edit_handle::GetSubMenu(menuhandIe,1)

block_handle::GetSubMenu(menuhandIe,2)

RemoveMenu(menuhandle,2.1024)

DrawMenuBar(WindowHandIe)

InsertMenu(edit_handle,1,1040,block_handIe,”块操作”)

所用变量初始值赋为空即可,运行结果如图2所示,设计图如图3所示。

3制作右键弹出菜单

在流程线上拖放一个交互图标,命名为“popupmenu”,在其右侧放一个群组图标,在弹出的“Response Type”对话框中,选择“Conditional”。将这个组图标命名为“RightMouseDown=TRUE”。双击群组图标上方的矩形色块,在弹出的"Properties:Response”对话框中,点击“Response”选项卡,选中其中的“Perpetual”复选项,并将“Branch”的值选为“Continue”。双击群组图标,打开它,在流程线的下方加一个计算图标,命名为“popupmenu script”。双击打开输入窗口,输入如下内容:popupHandle:~MsCreatePopupList(WindowHandIeltMsAddltam(popupHandle,1,0,“复制”)tMsAddltem(popupHandIe,2,0,“剪切”)tMsAddltem(popupHandIe,3,O,“粘贴”)popresult:=tMsDisplayControl(popupHandle,CursorX,Cursory,120,100,0)

最后,将所用到的变量初始值赋为空即可。设计图如图4所示。

这样,当用户进行鼠标右键操作时:条件为真,则系统执行计算图标里的代码后并弹出菜单,在鼠标右键点击处,弹出一个设定好的弹出式菜单,并将用户所选择的菜单项返回给变量popresult。程序运行结果如图5所示。

4打包运行

软件制作完成后,要对其进行package。方法是依次点击菜单“File Pubhsh---*Package”,在弹出“Package File”对话框的“Package File:”下拉列表中选择"For Windows XP,NT and 98Variant",然后点击"Save File(s)&Pac’Kage”按钮。Authorware会把打包后的执行文件放到源程序所在的目录下,并且打包后的文件与源程序文件同名。如果需要把执行文件异机演示,不要忘了把两个外部扩展函数Winapi.u32和tMsCOntrols.u32复制到执行文件所在的目录下。

5结束语

Authorware中的菜单交互功能有限,实现多级标准菜单和右键弹出菜单的方法有很多种。本文仅用外部扩展函数对其进行改进,使其能在使用时更加方便灵活。使用SDK工具对现有软件进行开发是软件编程人员经常遇到的情况,它也为我们进一步改善软件功能提供了一种解决方法。

(注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。)

上一篇:基于状态的预警模型研究 下一篇:GL Studio在飞机虚拟座舱实现中的应用