999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

淺談Authorware中菜單交互的制作技巧

2009-04-29 00:00:00
電腦知識與技術 2009年24期

摘要:多級菜單和右鍵彈出式菜單是Windows程序中必不可少的交互界面。該文在利用Authorware中的“菜單”交互響應制作菜單的基礎上,談談利用其它方法實現多級菜單和右鍵彈出式菜單的制作技巧。

關鍵詞:Authorwar;多級下拉菜單;右鍵彈出式菜單

中圖分類號:TP37文獻標識碼:A文章編號:1009-3044(2009)24-7004-04

On Fabrication Skills of Menu Interaction in Authorware

LI Min

(Jingchu University of Technology, Jingmen 448000, China)

Abstract: Javascript and right-click popup menu are essential interface in windows system. Based on the fabrication of menu interation in authorware, the paper mainly discuss some possible ways to achieve the fabrication skills of javascript and right-click popup menu.

Key words: authorware; javascript; right-click popup menu

交互性是多媒體課件的靈魂,為了實現課件的交互功能,Authorware提供了十一種常見的交互方式。其中利用菜單交互類型,很容易實現制作一個標準的Windows風格的菜單,但利用它來制作子菜單或右鍵彈出式菜單卻是件麻煩的事情。為了找到更好的解決辦法,經過多次編程實驗,總結出了一些方法。本文就個人在用Authorware制作課件時的經驗來談談Authorware中菜單交互的一些制作技巧。

1 制作多級下拉菜單

1.1 實現的主要技術

我們需要使用winapi.u32文件下的一些函數,這些函數的含義大致介紹如下:

1) GetSubMenu函數:

格式:HMENU GetSubMenu(HMENU hMenu,int nPos);

說明:該函數取得被指定菜單激活的下拉式菜單或子菜單的句柄。

參數:hMenu:菜單句柄。

nPos:激活下拉式菜單或子菜單的菜單項相對于零的位置。

2) RemoveMenu函數:

格式:BOOL RemoveMenu(HMENU hMenu,UINT uPosition,UINT uFlgs);

說明:該函數從指定菜單刪除一個菜單項或分離一個子菜單。

參數:hMenu:將被修改的菜單的句柄。

UPosition:指定將被刪除的菜單項,其含義由參數uFlages決定。

uFlags:指定參數uPosition如何解釋。

3) DrawMenuBar函數:

格式:BOOL DrawMenuBar(HWND hWnd);

說明:該函數重畫指定菜單的菜單條。

參數:hWnd:其菜單條需要被重畫的窗口的句柄。

1.2 創建如圖1所示的程序流程

圖1為制作多級下拉菜單的程序流程,圖2為制作多級下拉菜單的效果。

1.3 實現的主要步驟及部分程序源代碼

第一個交互圖標是去掉Authorware自行建立的“文件”菜單,我們可以看到在程序運行時,演示窗口的菜單欄上總會有一個“File”菜單。這與我們的作品總是那么不協調,我們可以采用制作一個同名下拉菜單,然后將其擦除這一技巧,從而達到消除這個多余菜單的目的。具體方法如下:

1)拖一個交互圖標到流程線上,命名為“File”,若Authorware是中文版本,則命名為“文件”。在交互圖標右側,放一個空的群組圖標,命名為“Empty”,將響應類型改為下拉菜單。雙擊群組圖標上方的響應標志,在其屬性框內,選擇“永久”,否則多個菜單無法同時出現在菜單欄上。

2)再拖動一個擦除圖標,命名為“擦除系統菜單”,將系統自建立的文件菜單擦除。運行程序。

第二個交互圖標是創建的一級菜單,雙擊組圖標上方的那個矩形色塊,在彈出的“屬性”對話框中,點擊“響應”選項卡,選中其中的“范圍”復選項,并將“分支”的值選為“返回”。第三個交互圖標是創建的二級菜單,各項設置同上面的步驟一樣。唯一的不同,就是要把交互圖標的命名刪除,也就是說要讓這個交互圖標的名字為空。

在主流程線的下方加一個計算圖標,命名為“制作多級菜單”,雙擊打開其輸入窗口,輸入如下內容:

menuhandle:=GetMenu(WindowHandle)

subhandle1:=GetSubMenu(menuhandle,0)

subhandle2:=GetSubMenu(menuhandle,1)

RemoveMenu(menuhandle,1, 1024)

DrawMenuBar(WindowHandle)

InsertMenu(subhandle1,0,1040,subhandle2,\"菜單項1\")

當你保存此計算圖標的內容時,系統會詢問在哪里可以找到這些函數。這些函數都是Authorware自帶的,我們只需要找到Winapi.u32并打開就行了。

打包。這個效果您得打包以后才能看得到。在源文件中執行是看不到效果的,打包后執行一下打包后的文件就可以了。效果如圖2所示。

2 制作右鍵彈出式菜單

彈出式菜單是運行程序時右擊程序演示窗口,出現彈出式菜單。利用U32函數或單純用Authorware本身功能,均可以創建像Windows所有應用程序一樣的鼠標右擊時彈出式菜單。

2.1 利用U32函數制作右鍵彈出式菜單

2.1.1 實現的主要技術

使用Budmenu.u32文件下的一些函數,這些函數的含義大致介紹如下:

2)mAppendMenu函數:

格式:ok:= mAppendMenu(menu,flags,menuID,menuText)

說明:該函數在菜單句柄menu指定的菜單底部添加一個菜單項。

參數:menu由mCreatePopupMenu函數返回的菜單句柄。

Flags與菜單相關的信息。(0普通的菜單項;1使菜單項變灰并禁止選擇它;2禁止選擇該菜單,但不變灰;16創建一個子菜單;2048創建一個分隔條)

menuID 標示菜單項的數字,由用戶自行安排,但是唯一的。

menuText 添加菜單項的文本。

2)mCreatePopupMenu函數:

格式:menu:= mCreatePopupMenu()

說明:該函數創建菜單并返回一個菜單句柄。

3)mGetlastMenuID函數:

格式:mGetlastMenuID()

說明:該函數用來檢查用戶選中了哪一個菜單項。

4)mTrackPopupMenu函數:

格式:ok:= mTrackPopupMenu(menu,flags,x,y,reserved,windowHandle,reserved)

說明:該函數顯示菜單。

參數:flags 菜單所需的選項,通常情況下為0.

x,y菜單項的位置。

Reserved 其值必須為0.

2.1.2 實現的主要步驟及部分程序源代碼

首先將函數導入到程序中。打開函數窗口,在“Load Funtion”對話框中選擇Budmenu.u32文件,在彈出的對話框中選擇mAppendMenu, mCreatePopupMenu, ,mGetlastMenuID, mMenuHookOn, mTrackPopupMenu。

創建如圖3所示的程序流程。

在“右鍵彈出式菜單”計算圖標的代碼框中輸入以下程序:

LastMenuID := 1

rightMenu := mCreatePopupMenu()

mAppendMenu( rightMenu,0,20, \"一級菜單項1\")

mAppendMenu( rightMenu,0,21, \"一級菜單項2\")

mAppendMenu( rightMenu,0,22, \"一級菜單項3\")

mMenuHookOn(WindowHandle)

Message:=\"單擊右鍵調出快捷菜單\"

在“LastMenuID>1”計算圖標的代碼窗口中輸入以下程序:

if LastMenuID= 20 then Message:=\"一級菜單項1\"

if LastMenuID= 21 then Message:=\"一級菜單項2\"

if LastMenuID= 22 then Message:=\"一級菜單項3\"

Message:=\"你選擇的菜單項是:\"^Message

if LastMenuID= 0 then Message:=\"沒有選擇\"

LastMenuID := 1

在“激活”的計算圖標的代碼窗口中輸入以下程序:

mTrackPopupMenu( rightMenu,0, CursorX + WindowLeft, CursorY + WindowTop,0, WindowHandle,0)

在“返回”計算圖標的代碼窗口中輸入以下程序:

LastMenuID := mGetLastMenuID()

在交互圖標里輸入以下文本:

利用U32函數制作右鍵彈出式菜單

{Message}

2.1.3 實現的效果

運行程序時右擊程序演示窗口,出現彈出式菜單,選擇一個菜單項后返回選擇的結果。如圖4所示。

2.2 用Authorware制作右鍵彈出式菜單

只使用Authorware本身的功能,同樣可以創建像Windows所有應用程序一樣的鼠標右擊時彈出的菜單。實現的關鍵有二,一是在按鈕響應的按鈕位置屬性中使用表達式,而不是一個具體的數值。二是使用DisplayLeft系統變量和DisplayTop系統變量,用它們來保存指定對象在演示窗口中的位置。

2.2.1 實現的主要步驟及部分程序源代碼

創建如圖5所示的程序流程。在“一級菜單”的交互圖標中導入“框架.bmp”。修改所有按鈕的形式,均為只有標題文字沒有外框的形式。

設置各自圖標的主要屬性。如表1。

同理,可以自行設置更多的一級菜單項。

2.2.2 實現如圖6的效果

圖5為用Authorware制作右鍵彈出式菜單的程序流程 圖,圖6為用Authorware制作的右鍵彈出菜單的效果。

3 制作右鍵彈出式二重菜單

在前面制作右鍵彈出式菜單都是一級菜單,我們可以進一步改善上面的步驟制作右鍵彈出式二重菜單。同樣也有兩種方法。

3.1 用U32函數制作右鍵彈出式二重菜單

制作大致流程同前,只是在導入函數時需要添加一些函數。這些函數的用法大致介紹如下:

1)mCheckMenuItem函數:

格式:ok:= mCheckMenuItem(menu,ID,check)

說明:該函數設置一個菜單項有無檢查標志(即有無對鉤)。

參數:menu 菜單句柄

ID 菜單項的ID值。

Check 該參數有兩種取值。(0清除檢查標志;8設置檢查標志)

2)mEnableMenuItem函數:

格式:ok:= mEnableMenuItem(menu,ID,enable)

說明:該函數允許或禁止一個菜單項。

參數:menu 菜單句柄

ID 單項的ID值。

Enable 該參數可以是以下值。(0 允許該菜單項。1 禁止選擇該菜單項,并使其變灰。2禁止選擇該菜單項,但不使它變灰。)

在“右鍵彈出式二重菜單”計算圖標的代碼窗口中重新輸入以下程序:

LastMenuID := 1

rightMenu := mCreatePopupMenu()

mAppendMenu( rightMenu , 0 , 20 , \"一級菜單項1\")

rightsubmenu := mCreatePopupMenu()

mAppendMenu( rightsubmenu , 0 , 30 , \"二級菜單項1\")

mAppendMenu( rightsubmenu , 0 , 31 , \"二級菜單項2\")

mAppendMenu( rightsubmenu , 0 , 32 , \"二級菜單項3\")

mAppendMenu( rightsubmenu , 0 , 33 , \"二級菜單項4\")

mAppendMenu( rightsubmenu , 2048 , 0,\"\")

mAppendMenu( rightsubmenu , 0,34 , \"二級菜單項5\" )

mCheckMenuItem( rightsubmenu , 32 ,8 )

mEnableMenuItem( rightsubmenu , 33 ,1)

mAppendMenu( rightMenu , 16 , rightsubmenu , \"一級菜單項2\")

mAppendMenu( rightMenu , 0 , 22 , \"一級菜單項3\")

mMenuHookOn( WindowHandle )

Message:=\"單擊右鍵調出快捷菜單\"

在“LastMenuID>1”計算圖標的代碼窗口中重新輸入以下程序:

if LastMenuID= 30 then Message:=\"二級菜單項1\"

if LastMenuID= 31 then Message:=\"二級菜單項2\"

if LastMenuID= 32 then Message:=\"二級菜單項3\"

if LastMenuID= 33 then Message:=\"二級菜單項4\"

if LastMenuID= 34 then Message:=\"二級菜單項5\"

if LastMenuID= 20 then Message:=\"一級菜單項1\"

if LastMenuID= 22 then Message:=\"一級菜單項3\"

Message:=\"你選擇的菜單項是:\"^Message

if LastMenuID= 0then Message:=\"沒有選擇\"

LastMenuID := 1

實現效果如圖7所示。

3.2 用Authorware制作右鍵彈出式二重菜單

在前例的基礎上繼續添加二級菜單,制作大致流程同前。只是在“一級菜單”下要建立二級菜單的某個菜單項的群組圖標里再建立一個交互圖標命名為“二級菜單”,在此交互圖標的演示窗口中導入同一個圖片“框架.bmp”。再設置二級菜單中每一個菜單項的屬性,如表2。

同理,可以自行設置更多的二級菜單項。實現效果如圖8所示。

4 結束語

一個好的課件布局形式,不僅要內容層次清晰,美觀,更重要的是應具有簡單、直觀、容量大,而占用屏幕面積小等優點。本文中,我們通過Authorware提供的各種圖標和交互功能以及函數實現了Windows菜單中的下拉菜單、右鍵彈出式菜單,多級菜單等常見菜單。當然,實現方法也不只是上述一種,例如用Authorware提供的tMsControls.u32也可以制作Windows標準菜單。

參考文獻:

[1] 樸相珍.用Authorware制作Windows三級菜單[J].電腦學習,2008(5).

[2] 倪應華.Authorware中右鍵二重菜單導航設計與實現[J].浙江師范大學學報,2004,27(2):226-228.

[3] 畢廣吉.authorware多媒體開發程序設計與典型實例[M].北京:人民郵電出版社,2004.

[4] 翁永平.Authorware菜單制作全攻略[J].中小學電腦報,2003(46).

主站蜘蛛池模板: 欧美另类视频一区二区三区| 福利小视频在线播放| 国产人在线成免费视频| 国产精品无码AV中文| 亚洲色图欧美| 日韩av高清无码一区二区三区| 日韩精品高清自在线| 色欲综合久久中文字幕网| 亚洲国产日韩在线成人蜜芽| 亚洲高清在线天堂精品| 亚洲性网站| 亚洲精品国产综合99| 伊人成色综合网| 激情综合网激情综合| 伊人久久婷婷| 欧美日韩国产成人在线观看| 亚洲乱码精品久久久久..| 亚洲成a人在线播放www| 国产精品性| 亚洲欧美h| 91一级片| 99久久精品国产精品亚洲| a毛片在线播放| 国产人人射| 国产老女人精品免费视频| 亚洲AV无码久久精品色欲| 亚洲热线99精品视频| 91精品国产丝袜| 久久a级片| 国产成人无码AV在线播放动漫 | 婷婷亚洲最大| 色综合五月婷婷| 欧美a在线看| 国产成人一区二区| 国产精品一老牛影视频| 71pao成人国产永久免费视频| 伊人成人在线| 在线观看国产精美视频| 天天色天天操综合网| 色九九视频| 第一页亚洲| 久草热视频在线| 国产精品成人AⅤ在线一二三四| 国产视频 第一页| 国产在线拍偷自揄观看视频网站| 欧美激情视频一区二区三区免费| 精品一区二区三区中文字幕| 国产网站免费观看| 国产特级毛片| 亚洲AV无码久久天堂| 国产aaaaa一级毛片| 99尹人香蕉国产免费天天拍| 精品国产福利在线| 成人一级免费视频| 熟妇丰满人妻| 欧美日韩一区二区在线播放| 无码综合天天久久综合网| 亚洲天堂.com| 国产成人艳妇AA视频在线| 国产白浆一区二区三区视频在线| 久一在线视频| 国产91丝袜| 国产成人久久综合一区| 久久综合AV免费观看| 精品伊人久久久久7777人| 午夜爽爽视频| 国产欧美视频在线观看| 国产在线八区| 久久人人97超碰人人澡爱香蕉| 免费一级大毛片a一观看不卡| 无码专区第一页| 免费看av在线网站网址| 91精品国产丝袜| 色综合五月婷婷| 欧美中文字幕在线二区| …亚洲 欧洲 另类 春色| 国产亚洲精品自在久久不卡| 老司机aⅴ在线精品导航| 亚洲高清中文字幕| 人妖无码第一页| 国产欧美中文字幕| 毛片网站在线播放|