2009-01-09 34 views
5

我在加載在CS3中創建的外部Flash資源的Flex應用程序上工作。我剛剛閱讀了關於如何使用Flex mx.managers.CursorManager類顯式更改鼠標指針。但我理想的做法是在加載的Flash SWF中的某些元素上設置鼠標光標屬性,以便光標通過此元素時,光標自動更改,而不必響應鼠標事件。Flash/Flex遊標

可能嗎? Flash是否支持DisplayObject或其他?

看來Flash SWF正在壓倒我。有些對象通過鼠標懸停自動顯示手形光標,而我看不到在DisplayObject上關閉此功能的方法?

回答

4

要設置的「手」光標,只要鼠標懸停在您必須指定這些特性的元素:

<mx:VBox 
     useHandCursor="true" 
     mouseChildren="false" 
     buttonMode="true"> 

但是這隻適用於手形光標。還要照顧所需的mouseChildren屬性。您必須將其設置爲false以實現所有包含項目的光標,或者必須爲所有元素指定屬性useHandCursorbuttonMode。然而設置mouseChildren的副作用是,在子元素的所有鼠標事件(鼠標懸停鼠標移開點擊,...)將不再工作。

如果你想使用一個不同的遊標比手形光標恐怕你只有兩種可能性:通過你的光標

  • 使用鼠標懸停

    • 取代標準的手形光標和mouseOut事件以編程方式設置光標。
  • 2

    在任何繼承自Sprite的buttonMode和useHandCursor屬性都爲true的對象中,當您翻轉它時,默認情況下會獲得手形光標。有些對象默認是這樣做的,正確的; Button和LinkBut​​ton是你可能已經注意到的例子。只要將這些組件的useHandCursor設置爲false,即使其buttonMode屬性(負責調度點擊事件)設置爲true,也可以輕鬆地禁用手形光標。

    如果您想將鼠標指針設置爲mouseOver上的其他任何內容,您必須響應鼠標事件;這是沒有辦法的。根據您的設計目標,您可以以某種方式中斷工作,也許可以通過繼承其他對象,然後覆蓋其默認行爲,但以某種形式或其他形式,運行時需要知道您希望處理這些鼠標事件。