2009-08-19 37 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