[AS3程式設計教學]自定義右鍵選單?

在很多互動flash作品中,比如網站或者遊戲,右鍵菜往往有作者或開發者自己的資訊項,單擊後便會產生一個連線來訪問作者主頁或者官網,本教程教大家實現這個自定義選單。

工具/原料

Flash(CS3以上版本)

步驟/方法

我們新建一個空白文件,選擇ActionScript 3.0

[AS3程式設計教學]自定義右鍵選單

因為是講述程式編寫,所以對幀頻和大小沒有要求,我們按下Ctrl+Enter來測試這個文件,然後點選右鍵選單,發現預設的選單如下圖:

[AS3程式設計教學]自定義右鍵選單

我們今天希望在這個選單里加入兩項,“關於自己”,“我的主頁”,改如何操作?在時間軸上第一針空白關鍵幀按下F9,開啟指令碼編輯面板。

[AS3程式設計教學]自定義右鍵選單

做法就是我們要定義一個自己的選單變數,在這個變數上新增選單項,然後將當前flash舞臺的選單賦值為我們自己新建的選單項。首先我們新建選單項,並且新增自定義的兩項,並賦值給當前舞臺:
var myContextMenu:ContextMenu = new ContextMenu();
var mAuthor:ContextMenuItem = new ContextMenuItem("關於自己");
myContextMenu.customItems.push(mAuthor);
var mPage:ContextMenuItem = new ContextMenuItem("我的主頁",true);
myContextMenu.customItems.push(mPage);
this.contextMenu = myContextMenu;

[AS3程式設計教學]自定義右鍵選單

此時你進行測試,就會發現右鍵選單已經多了兩項出來:

[AS3程式設計教學]自定義右鍵選單

接下去我們要給每個點選新增事件,否則右鍵選單是中看不中用的。繼續給兩個自定義選單項新增滑鼠偵聽響應事件,程式碼如下:
//自定義選單項
var myContextMenu:ContextMenu = new ContextMenu();
var mAuthor:ContextMenuItem = new ContextMenuItem("關於自己");
myContextMenu.customItems.push(mAuthor);
var mPage:ContextMenuItem = new ContextMenuItem("我的主頁",true);
myContextMenu.customItems.push(mPage);
//當前舞臺按鈕賦值
this.contextMenu = myContextMenu;
//滑鼠事件偵聽
mAuthor.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, authorHandler);
mPage.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, pageHandler);
function authorHandler(e:ContextMenuEvent):void
{
navigateToURL(new URLRequest("http://www.baidu.com"),"_blank");
}
function pageHandler(e:ContextMenuEvent):void
{
navigateToURL(new URLRequest("http://www.baidu.com"),"_blank");
}
此時你再測試響應,發現單擊後都會連結到百度首頁,我們的目的達到了。

[AS3程式設計教學]自定義右鍵選單

有同學可能會問,右鍵選單原來那些預設的要不要去掉呢,看著很煩也沒什麼用。這個當然是可以的,我們在舞臺賦值之前加上一句myContextMenu.hideBuiltInItems();

[AS3程式設計教學]自定義右鍵選單

作者, 教學, 選單, 右鍵,
相關問題答案