萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 軟體知識 >  >> 影像處理 >> Flash 教學

Flash 自訂滑鼠游標樣式實作教學

ActionScript 實作自訂滑鼠游標:隱藏系統游標、跟隨滑鼠座標、平滑移動

本教學示範如何以影片剪輯元件替代系統滑鼠游標,支援動態/靜態樣式,並解決邊界殘影問題。

實作步驟

  1. 建立游標元件
    • Ctrl+F8 新增影片剪輯,命名「CursorMC」。
    • 在元件編輯模式繪製游標圖形(可含動畫),圖形幾何中心對齊元件註冊點(十字中心),因 AS 讀取 `_x/_y` 即為註冊點座標。
      游標元件編輯
  2. 主場景配置
    • 將「CursorMC」從庫拖至舞台,**建議放置於舞台可見區域外**(避免第 1 幀閃現)。
    • 新增最上層「遮罩層」,在舞台邊框內側用四個黑色矩形拼成遮蓋框,遮擋游標移出舞台時的殘影。
      邊界遮蓋框
  3. 撰寫 ActionScript(AS2 語法)
    • 選取舞台上的「CursorMC」實例,開啟動作面板(F9)輸入:
    onClipEvent (load) {
        Mouse.hide(); // 隱藏系統游標
    }
    
    onClipEvent (mouseMove) {
        _x = _root._xmouse;
        _y = _root._ymouse;
        updateAfterEvent(); // 強制重繪,確保平滑跟隨
    }
    • 代碼解析:
      • Mouse.hide():隱藏原生游標。
      • _root._xmouse / _ymouse:取得舞台座標系下的滑鼠位置。
      • updateAfterEvent():立即重繪畫面,消除游標移動時的「跳動/延遲」感。
  4. 測試發布
    • Ctrl+Enter 測試,游標應平滑跟隨滑鼠移動,移出舞台被黑框遮蓋。

進階擴展(AS3 版本)

// 主時間軸框架代碼
Mouse.hide();
var cursor:CursorMC = new CursorMC();
addChild(cursor);
cursor.mouseEnabled = false; // 讓滑鼠事件穿透

stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);
function onMouseMove(e:MouseEvent):void {
    cursor.x = stage.mouseX;
    cursor.y = stage.mouseY;
    // AS3 不需 updateAfterEvent,事件驅動渲染已足夠平滑
}

常見問題

  • 游標閃爍:確認元件註冊點在幾何中心,且未啟用 `cacheAsBitmap` 導致子像素渲染問題。
  • 右鍵選單干擾:可用 `ContextMenu` 隱藏預設右鍵選單。
  • 全螢幕模式:需監聽 `FullScreenEvent` 重新定位游標層級。
copyright © 萬盛學電腦網 all rights reserved