从TextField中删除焦点后,如何刷新鼠标光标?

时间:2016-11-16 23:26:25

标签: actionscript-3 actionscript air

如果用户键入ESC或ENTER,或者将焦点放在其他位置,我想删除文本字段上的焦点和选区。因此,我这样做:

        stage.focus = null;

        textField.type = TextFieldType.DYNAMIC;
        textField.selectable = false;
        textField.mouseEnabled = false;

问题是,如果鼠标位于可编辑文本字段上,则鼠标处于IBEAM模式(插入光标)并保持在IBEAM模式,即使在上面的命令之后,直到我稍微移动鼠标,此时它返回到AUTO状态。

我想强制鼠标自我更新并满足AUTO状态,但无论我多少尝试确保文本字段被禁用,它只会在我移动鼠标后才会自行消失。

1 个答案:

答案 0 :(得分:1)

您的评论中最简单的答案:

  

所以我对你的建议和luls进行了调整,使用了Mouse.hide()然后使用了Mouse.show()并且它有效。删除了hide(),它只适用于Mouse.show()!猜猜它会刷新鼠标光标。没有眨眼,效果很好< 3

我原来的回答:

这是一种解决方法,但不应该太难实现。希望有人带来本机API解决方案。

  1. 运行您发布的代码
  2. 然后使光标不可见
  3. 然后将自定义光标放在鼠标位置(如果您不介意光标消失,则可选)
  4. 开启MouseEvent.MOUSE_MOVE删除自定义光标,然后再次显示光标。
  5. 我怀疑你是否需要我为你编写这段代码,但是如果你认为这种方法对你有用,而且你在实现这种技术时遇到问题,请告诉我。

    如果你担心不同的系统有不同的鼠标图标,然后突然得到你的自定义的一秒钟,那么简单的解决方案就是始终使用你的自定义光标。你可以根据自己的喜好设计它;要么模仿Windows操作系统,要么使其独一无二。