在翱翔的手游标在textfield

时间:2009-01-31 16:08:00

标签: flash actionscript-3

我知道MovieClip上的buttonMode属性(在悬停时获取手形光标),我希望用TextField做同样的事情,但它似乎没有实现这个属性。有没有人知道是否有类似的东西,或者失败了,另一种控制文本字段光标的方法?


@James:我正在扩展MovieClip类,然后在代码中从cllass(包括文本字段)中创建对象,这会使事情变得复杂(如果仅在我脆弱的大脑中)。奇怪的是我在MC上设置了buttonMode = true,它适用于除TextField之外的所有内容,当它恢复为插入符号时(如果我在TextField上设置Selectable = false,则仅适用于指针)。

@ForYourOwnGood:关于可用性的观点,但我希望textfield是更大对象的无缝部分,没有手形光标就感觉不对。你提供的东西听起来就像我需要的东西,但它看起来像Flex特定的?尽管在LiveDocs中进行了拖网,但我找不到Flash中的等效物(特别是CS4)。我昏暗吗? :S

6 个答案:

答案 0 :(得分:9)

尝试添加

mouseChildren = false; (在扩展MovieClip的类中)

它应该阻止文本字段被鼠标启用。

答案 1 :(得分:4)

或者,您可以将文本字段放在movieclip中,并将buttonmode设置为true。这基本上是按钮组件中的凸起如何工作,并且是这个特定问题的可接受的解决方案。

答案 2 :(得分:2)

您无法使用TextField设置手形光标,就像使用MovieClip一样。这是有道理的,如果你考虑一下,Textfield上的手形光标不是用户友好的,用户希望将文本输入到TextField中,而不是像Button一样点击它。但是你可以使用它。

为TextField提供鼠标悬停事件的事件监听器,然后在事件处理程序中将光标设置为CursorManager。

应该看起来像......

myTextField.addEventLstener(MouseEvent.MOUSE_OVER, onMouseOver);

private function onMouseOver( event : MouseEvent ) : void{
   CursorManager.setCursor(cursorClass, priority, xOffset, yOffset);
}

答案 3 :(得分:2)

没有_sprite.buttonMode = true操纵, 你必须写:

_textField.htmlText = "<a href='event:null'>"+yourText+"</a>";

答案 4 :(得分:1)

上述任何一项都不是必需的,请尝试将TextField的mouseEnabled属性设置为false,如下所示:

textField.mouseEnabled = false;

这将禁用TextField上的任何鼠标交互,这会阻止Flash观看选择。

答案 5 :(得分:0)

我会非常原始地将alpha = 0 movieClip放在按钮的textfield / label上,这也会带来handCursor