2010-04-21 27 views
1

我有一個純粹的AS3(無Flex)項目,它使用Flare來顯示數據可視化並與之交互。我只是實現了一些平移行爲,所以你可以點擊並拖動可視化,現在我想通過用一個好看的手形圖標切換箭頭光標,給用戶一個可能的視覺指示器。 ( - 這種行爲是已經到位,此時光標交換到一個指針)在純AS3/Flare項目中替換遊標的方法?

用戶可以除了當鼠標在一個可點擊的節點在任何時間點擊和拖動。

因此...
1)我是否需要創建自己的自定義位圖/精靈或者是否有我可以使用的內置遊標調色板? (我不使用Flex。)

2)有沒有辦法簡單地替換平移光標項目範圍內默認的箭頭,或者我需要連接交換鼠標事件的顯示對象?我可以使用舞臺對象使這種行爲在任何地方都適用嗎?

3)如何進行交換?我是直接使用Cursor對象還是需要參與CursorManager?

任何指導,僞代碼,或智慧的話是非常感謝!

回答

2

有幾件事情我學會(都相當牛逼,真的)。首先,通過將Mouse.cursor設置爲MouseCursor.TYPE的任何選項,可以設置一些內置遊標選項。 Mouse對象是應用程序範圍內的單例,因此無論您在代碼中如何更改它,更改都會一直存在,直到觸發另一個更改爲止。 對於我的簡單的情況下,我這樣做:

//on init, start with the "hand" 
    Mouse.cursor = MouseCursor.HAND; 

    //on clickable items, change to "pointer", then back to "hand" 
    myClickableNode.addEventListener(MouseEvent.ROLL_OVER, function(evt:Event):void { 
     Mouse.cursor = MouseCursor.BUTTON; 
    }); 
    myClickableNode.addEventListener(MouseEvent.ROLL_OUT, function(evt:Event):void { 
    Mouse.cursor = MouseCursor.HAND; 
    }); 

的結果是,你總是有「手」,直到翻滾的東西點擊,那麼你得到的「指針」。

2

我不認爲有一個在閃光燈CursorManger,只彎曲。我在做的方式是隱藏光標並將自定義光標拖放到mouse_move的自定義類。你必須將其設置爲mouseChildren = false,否則將flickr或按鈕將不可點擊。我發現的一個問題是自定義上下文菜單。試試這個鏈接http://abrahamyan.com/2009/03/23/as3-cursormanager/

+0

這是一個漂亮的類!我最終在這種情況下使用了內置遊標,但是當我真的需要爲遊標使用自定義圖像時,這個功能非常實用。謝謝! – peteorpeter 2010-04-22 15:53:54