
zhengchang:放入 箭頭yidao:繪製手形anxia:繪製握拳stop(); 防止自動播放。
主場景拖入三元件,實例名:
• Object1(物體一/按鈕)
• Object2(物體二/影片剪輯)
• dhzz(動畫指針)
Object1(按鈕):
on(press){ startDrag("_root.object1"); }
on(release){ stopDrag(); }
Object2(影片剪輯):
onClipEvent(mouseDown){ startDrag("_root.object2"); }
onClipEvent(mouseUp){ stopDrag(); }
差異在於按鈕用 on() 處理器,影片剪輯用 onClipEvent()。
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 = showyidao;
| 技術點 | 說明 |
|---|---|
| 幀標籤 | 替代幀號碼,便於維護;gotoAndStop("label") 更語意化。 |
| 函數封裝 | 將游標切換邏輯封裝為函數,多物件共用,減少重複代碼。 |
| 事件屬性賦值 | AS2 中 btn.onRollOver = func 可動態綁定,優於元件內硬編碼。 |
| startDrag 目標路徑 | 按鈕用 "_root.object1"(字串路徑),MC 用 "_root.object2",需精確匹配實例名。 |
yidao/anxia 幀放入 MovieClip 而非靜態圖形。Mouse.hide() (AS3) / _root._ymouse 技巧 (AS2) 完全接管游標繪製。Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT 支援多指游標。// AS3 概念
Mouse.hide();
stage.addEventListener(MouseEvent.MOUSE_MOVE, updateCursor);
function updateCursor(e:MouseEvent):void {
cursorMc.x = e.stageX; cursorMc.y = e.stageY;
}
object1.addEventListener(MouseEvent.ROLL_OVER, ()=>cursorMc.gotoAndStop("over"));
object1.addEventListener(MouseEvent.ROLL_OUT, ()=>cursorMc.gotoAndStop("normal"));
object1.addEventListener(MouseEvent.MOUSE_DOWN, ()=>cursorMc.gotoAndStop("down"));
object1.addEventListener(MouseEvent.MOUSE_UP, ()=>cursorMc.gotoAndStop("over"));