设计教室
设计欣赏|图形图像|媒体动画|机械电子|CI设计|设计文献|PhotoShop|Corel3Dmax|Flash|AutoCad|设计视频
首页 > 设计教室 > 媒体动画 > Authorware > 正文

Authorware实战开发专题之制作Windows标准菜单方法(3)

2007-02-05 源自: 网友评论 0 进入视频教程
5.3 利用ActiveM!.u32制作图形菜单

  ActiveM!是2002年4月20日新鲜发布的Authorware 32位外部扩展函数库,由Authorware扩展开发牛人、磨鉴互动数字媒体试验室张方正(老张)开发。ActiveM! 的前身是著名的Authorware扩展函数库MJSAPI,从5.0版开始,MJSAPI正式更名为ActiveM!。

  ActiveM!.u32提供了一系列制作图形菜单的扩展函数,包括右键图形菜单全系列,支持鼠标左/右键弹出、菜单图标、菜单的不同状态、动态添加、删除、插入菜单、修改菜单文字、图形等。看了功能描述介绍是不是有点兴奋的感觉,其实上面提到的系列扩展函数只是ActiveM!.u32的一小部分函数功能,ActiveM!.u32堪称世界上最强大的Authorware扩展功能库,欲了解更多的信息,请到它的主页:http://www.mjssoft.com。马上把ActiveM!.u32关于菜单类系列函数介绍给大家:

M_CreatePopupMenu()

新建一个弹出式菜单

M_PopupUpMenu()

弹出一个弹出式菜单

M_DestroyPopupMenu()

卸载一个弹出式菜单

M_GetSelectedMenuItemIndex()

获得用户当前所选择的菜单项目索引

M_GetSelectedMenuItemText()

获得用户当前所选择的菜单项目标题

M_IsThereAPopupMenu()

检查是否已经建立了一个弹出式菜单

M_SetMenuItemChecked()

设置某一菜单项为选中状态

M_GetMenuItemChecked()

获得某一菜单项是否为选中状态

M_SetMenuItemStatus()

设置某一菜单项的状态为允许/禁止

M_GetMenuItemStatus()

获得某一菜单项的允许/禁止状态

M_ChangeMenuItemIcon()

动态改变某一菜单项的图标

M_ChangeMenuItemText()

动态改变某一菜单项的标题

M_InsertMenuItem()

动态插入一个新的自菜单项

M_AppendMenuItem()

动态追加一个新的菜单项

M_RemoveMenuItem()

动态删除一个菜单项

M_ResetMenuItemIndex()

复位前一次菜单项选择状态,以备下一次新的选择

  了解了上面的函数后,我们马上来熟悉它的图形菜单制作方法。和上面介绍的两个U32不同,ActiveM!.u32采用的是利用外部TXT列表文件创建菜单的方法,也就是说要产生菜单,必须事先编辑一个TXT菜单初始化信息列表文件,其具体格式如下(每个菜单项用5行表示):

菜单项的名称

即显示在菜单上的文字

菜单项的层次

1表示一级菜单,2表示二级菜单

菜单项的图标文件 即显示在菜单项左端的小图标,如该菜单项不需要图标,则该行留空

菜单项的状态

为1或0,表示该菜单项是正常可用的还是被禁止[灰色显示]

菜单项的选中状态

为1或0,表示该菜单项是否被选中,被选中的菜单项左端有一个小勾,如果该菜单项包含图标,则图标被强化显示表示已经被选中



  另外菜单项之间的分隔符[在菜单中显示为一条水平线]也是一个特殊菜单项,也需要占用以上5行,它的设置是:名称为一个短的减号"-",层次设置为其所在的实际层次,图标文件项留一空行[不是空格],其余两项设置为0。
  了解TXT菜单列表文件的格式后,我们来制作一个ActiveM!.u32的菜单范例吧。首先我们编写菜单初始化信息列表文件(TXT文本),具体内容如下:


Windows Media Player 1
MenuList/Windows Media Player.ico
1
0
Favorites
1
MenuList/Favorites.ico
1
1
-
1
1
1
Game
1
1
0
Minesweeper
2
MenuList/Minesweeper.ico
1
0
Solitaire
2
1
1


  其实菜单初始化信息文件类似一个资源连接列表,因此必须确保TXT文本中的ICON图标文件路径正确而且存在,否者将没法正常显示。

  TXT存盘后,我们就可以在Authorware中利用ActiveM!.u32的M_CreatePopupMenu()函数创建菜单,例如菜单初始化信息文件命名为Menu.txt,存放路径为当前文件的MenuList文件夹下,则写法为M_CreatePopupMenu(WindowHandle,"MenuList//Menu.txt"),然后用M_PopupUpMenu(0,0,0)函数就可以弹出菜单拉,具体效果如下图5.17所示:



图5.17利用ActiveM!.u32制作图形菜单

  哇,是不是十分的酷?可是天下没有免费的午餐,ActiveM!.u32并不是一个免费的扩展函数库,需要注册购买,没有注册的共享版本只能使用80天,而且有版权说明窗口等限制。如果单单是为了制作菜单而购买一个ActiveM!.u32肯定是没有必要,毕竟实现的方法是多元化,动动脑子可以做的更好,何乐而不为呢?无论怎么说,ActiveM!.u32的确是一个功能强大的Authorware扩展函数,有兴趣的读者可以自行研究它的其它功能函数。

专题总结

  制作Windows标准菜单方法当然不止上面的三种方法,例如我们可以模仿设计一系列和Windows标准菜单类似的图片然后再进行交互程序设计,可是这样的话肯定没有上面的利用第三方U32扩展开发菜单来的方便和更具有交互性,这里推荐tMsControls.u32和Budmenu.u32,因为它们是免费的,为什么不用呢J。当然如果你有多余的M的话,注册购买一个ActiveM!.u32也是值得的,支持国产软件嘛。

  其实有编程能力的高手们不妨自己也来开发一个“特色”U32,相关的开发规范可以到Macromedia公司的主页上查找得到。

上一篇: Authorware实战开发专题之制作Windows标准菜单方法(2)
下一篇:Authorware实战开发专题之Authorware作品的加密保护(1)

评论  点击查看
 
设计频道推荐
设计热点文章