大家在欣賞Flash的時候,常常會在一些動畫中發現,把鼠標指針放入畫面內就會變成有趣的動畫指針,而且形狀還會隨著你的移動、點擊等動作發生變化。其實這種效果並不難實現,今天我們就來看一個這樣的例子。
實例效果:
動畫開始播放時,鼠標指針是一個大小不停變化的箭頭;當移動到物體上的時候,顯示為手形;在物體上按下鼠標左鍵的時候,變成“握拳”形;松開左鍵後再恢復為手形(如圖1)。
圖1 鼠標指針的三種樣式
制作步驟:
1、我們先來制作本例需要的一些按鈕(Button)和影片(MovieClip)元件。首先啟動Flash MX建立一個新文件,按Ctrl+F8創建一個名為“物體一”按鈕(Button)元件,由於按鈕並不是本例重點,所以樣式隨意。同理再創建一個名為“物體二”的影片(MovieClip)元件(注:這裡之所以制作兩種不同的元件,是為了後面介紹交互性動態光標的不同用法)。
再創建一個名為“箭頭”的影片元件,制作出大小不斷變化的箭頭,制作過程比較簡單,這裡就不多說了。
2、按Ctrl+F8創建一個名為“動畫指針”的影片元件,按F6兩次,插入兩個關鍵幀,這樣時間軸上就有了三個關鍵幀,為第二和第三幀加上Actions語句:“Stop();”。按Ctrl+L打開元件庫(Library),將第一步中創建好的“箭頭”影片拖放到第1幀中,在第2幀中繪制一個“手形”標志,在第3幀中繪制“握拳”標志。單擊窗口下方的Properties按鈕打開屬性框,分別為三幀加上幀名(Frame Lable)。在本例中,我們稱第1幀為“zhengchang”、第2幀為“yidao”、第3幀為“anxia”(如圖2)。
3、回到主場景中,將庫中的“物體一”、“物體二”、“動畫光標”都拖放到場景中。單擊窗口下方的Properties按鈕打開屬性框,分別為三個物體加上實例名(Instance Name):Object1、Object2、dhzz;選中“物體一”影片,右擊選擇Actions,輸入以下語句(注“//”後面的文字是語句說明,無需輸入):
on (press) {
startDrag("_root.object1");
}//在按鈕上按下鼠標開始拖動
on (release) {
stopDrag();
}//在按鈕上松開鼠標停止拖動
4、利用同樣的方法為“物體二”影片加上語句:
onClipEvent (mouseDown) {
startDrag("_root.object2");
}//在影片上按下鼠標開始拖動
onClipEvent (mouseUp) {
stopDrag();
}//在影片上松開鼠標停止拖動
大家不難看出,雖然都是拖動,但由於對象的屬性不同,所以語句也有所不同。在Flash MX中利用上述的兩種語句可以實現對任何物體的拖動,十分方便。
圖2為關鍵幀定義幀名,以便於管理
5、選擇主場景時間軸上的第1幀,單擊右鍵選擇“Actions”,為幀加上如下語句:
fscommand("trapallkeys", false);
//關閉播放器快捷鍵
fscommand("showmenu", false);
//關閉播放器右鍵快捷菜單
function showzhengchang() {
dhzz.gotoAndStop("zhengchang");
}//定義動畫正常播放時鼠標指針的樣式
function showyidao() {
dhzz.gotoAndStop("yidao");
}//當移動到某個物體上時鼠標指針的樣式
function showanxia() {
dhzz.gotoAndStop("anxia");
}//在物體上按下鼠標左鍵時鼠標指針的樣式
object1.onrollout = showzhengchang;
//不在物體上顯示的正常的鼠標指針樣式
object1.onRollover = showyidao;
//當鼠標移動到“物體一”上的時候,顯示定義好的指針樣式
object1.onpress = showanxia;
//當在“物體一”上按下鼠標左鍵的時候,顯示定義好的指針樣式
object1.onRelease = showyidao;
//當在“物體一”上松開鼠標左鍵的時候,顯示定義好的指針樣式
object2.onRollover = showyidao;
object2.onrollout = showzhengchang;
object2.onpress = showanxia;
object2.onRelease = showyi
dao;
“物體二”與“物體一”語句相似,大家要注意語句的格式。
到這裡為止,總算大功告成啦!按Ctrl+Enter欣賞一下自己的勞動成果。怎麼樣,感覺不錯吧!如果將“手形”和“握拳”樣式也全部制作成動畫的話,效果會更“酷”哦!