authorware本身没有直接为我们提供制作弹出式二重菜单的功能,但是authorware 5 attain附带的用户自定义函数tmscontrols.u32(立即下载)可制作弹出式二重菜单。本文就为各位介绍其详细的制作方法。
实现效果
当用户在演示窗口单击鼠标右键时出现一个菜单(类似于在windows桌面上单击鼠标右键出现的菜单)。菜单中的第一重是《中国电脑教育报》的几个一级栏目,如:硬件世界、软件天地、网络时代和电脑教育(注:目前软件天地与网络时代已合为软件.net,电脑教育应为教育信息化);第二重菜单是软件天地的一些二级栏目,如:业界视窗、新手上路和编程乐园等。当用户选择某个菜单时,将跳转到相应的内容。
准备工作
启动authorware 5.0,新建一个名为“右键二重菜单”的文件。由于函数tmscontrols.u32是外部函数,所以需要进行加载。按ctrl+shift+f打开functions函数库,选择category下的“右键二重菜单.a5p”,然后单击load…出现对话框,选择tmscontrols.u32后单击打开,出现一个对话框。按住ctrl键可以连续选中所需要的三个函数:tmsadditem、tmscreatepopuplist、tmsdisplaycontrol,最后单击load即可完成对函数的加载。
右键响应的制作
在流程线上放置一个【交互图标】,取名为“右键响应”;在【交互图标】旁边放置一个【群组图标】,其type(响应类型)为:conditional;双击【群组图标】上面的“=”,出现对话框,在condition中输入rightmousedown=true,response下scope设置为perpetual,erase设置为after next entry,branch设置为return,status设置为not judged,最后单击ok完成右键的制作。
制作二重菜单
双击打开【群组图标】,在流程线上放置一个【计算图标】,取名为制作菜单。双击打开并在其中输入以下内容:
创建弹出式菜单的句柄:
popuphandle:=tmscreatepopuplist(windowhandle)
1、设置第一重菜单中的内容,其中"-"为分隔线,为了使菜单名称居中,可以在名称前加空格。
tmsadditem(popuphandle, 1, 0, "中国电脑教育报")
tmsadditem(popuphandle, 2, 0, "-")
tmsadditem(popuphandle, 3, 0, " 硬件世界")
tmsadditem(popuphandle, 4, 0, " 软件天地")
tmsadditem(popuphandle, 5, 0, " 网络时代")
tmsadditem(popuphandle, 6, 0, " 电脑教育")
tmsadditem(popuphandle, 7, 0,"-")
tmsadditem(popuphandle, 8, 0," 退出")
2、设置硬件世界和电脑教育的子菜单,即第二重菜单:
tmsadditem(popuphandle, 4, 1, "业界视窗")
tmsadditem(popuphandle, 4, 2, "新手上路")
tmsadditem(popuphandle, 4, 3, "软件速递")
tmsadditem(popuphandle, 4, 4, "编程乐园")
tmsadditem(popuphandle, 4, 5, "经验技巧")
tmsadditem(popuphandle, 6, 1, "教育前沿")
tmsadditem(popuphandle, 6, 2, "校园实践")
当单击右键将弹出一个前边设定好的弹出式菜单,并将用户反馈(即用户所选择的菜单项)返回给变量result:
result := tmsdisplaycontrol(popuphandle,cursorx,cursory,150, 100, 6)
图1
此时,按ctrl+r运行程序会发现在演示窗口单击鼠标右键时会出现一个如图1所示的二重菜单。
二重菜单的交互响应
在流程线上再放置一个【计算图标】和【决策图标】;【决策图标】旁放置一些【显示图标】(如图2),根据名称在【显示图标】输入所需内容,双击【显示图标】上面的小矩形出现对话框,将erase contents设置为don't erase;在计算图标中输入以下内容:
图2
if result=1 then goto(iconid@"中国电脑教育报")
if result=3 then goto(iconid@"硬件世界")
if result="4:1" then goto(iconid@"业界视窗")
if result="4:2" then goto(iconid@"新手上路")
if result="4:3" then goto(iconid@"软件速递")
if result="4:4" then goto(iconid@"编程乐园")
if result="4:5" then goto(iconid@"经验技巧")
if result="5" then goto(iconid@"网络时代")
if result="6:1" then goto(iconid@"教育前沿")
if result="6:2" then goto(iconid@"校园实践")
if result=8 then quit(0)
最后按运行程序,当在演示窗口单击鼠标右键时出现二重菜单,选择后将会跳转到相应的内容。有兴趣的朋友对本例稍加修改后用到自己的软件中,肯定会提高软件技术含量,使你的软件增色不少!
新闻热点
疑难解答