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)
最后按運行程序,當在演示窗口單擊鼠標右鍵時出現二重菜單,選擇后將會跳轉到相應的內容。有興趣的朋友對本例稍加修改后用到自己的軟件中,肯定會提高軟件技術含量,使你的軟件增色不少!
新聞熱點
疑難解答