2009-08-19 39 views

回答

0

如果您笏改變你需要檢查鼠標時它目前在Flex的TextInput控件的文本字段子對象的cursur:

<?xml version="1.0" encoding="utf-8"?> 
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/halo" minWidth="1024" minHeight="768" mouseMove="application1_mouseMoveHandler(event)"> 

    <fx:Script> 
     <![CDATA[ 

      protected function application1_mouseMoveHandler(event:MouseEvent):void 
      { 
       if(event.target is TextField) 
       { 
        if(TextField(event.target).type == TextFieldType.INPUT) 
        { 
         Mouse.hide(); 
        } 
       } 
       else 
       { 
        Mouse.show(); 
       } 
      } 

     ]]> 
    </fx:Script> 

    <mx:TextInput width="300" /> 
</s:Application> 

這只是讓它消失,但您可以使用機會通過將Mouse.hide()替換爲其他註釋中描述的CursorManager方法來替換Mouse.hide()。我真的不認爲這個事件是「欺騙」,並且重寫PlayerGlobals.swc類總是比開放的Flex SDK更困難。

+0

我正要實施......像我說的那樣的詭計。我只用這個詞,因爲我覺得它應該存在一個更簡單的方法來實現這一點,比如剝皮遊標。 謝謝! – 2009-08-21 08:55:20

1

是的,這是可能的。你需要利用mx.managers.CursorManager

有沒有辦法來代替光標圖形,但可以通過添加一個新的光標向經理高優先級實現這一目標:

CursorManager.setCursor(myCursor, CursorManagerPriority.HIGH); 

在上面的例子中,myCursor可以是JPEG,GIF, PNG或SVG圖像,Sprite對象或SWF文件。此外,setCursor接受兩個附加參數,xOffset:Number = 0, yOffset:Number = 0,如果需要,您可以使用它來將實際指針位置的圖像偏移。

回覆:您的評論:

我相信你是正確的。我無法知道重寫某個事件foo以外的組件懸停遊標。請記住,這是最近添加的具有最高優先級的遊標(當然是「CursorMangager」),它將被顯示。

+0

我這樣做了,但是當將光標放在內部時,例如,TextInput字段Flex將顯示默認文本選擇光標以及添加的自定義光標... 有沒有簡單皮膚默認光標的方法?還是有必要有一些事件聆聽欺騙手段,使其按預期工作? – 2009-08-20 10:23:31