【问题标题】:How to check if movie clip or any of it's children lose focus in AS3?如何检查影片剪辑或其任何子项在 AS3 中是否失去焦点?
【发布时间】:2015-01-01 09:28:37
【问题描述】:

我已经为 Input TextField 制作了自定义类,带有标题和自己的虚拟键盘,它加载到 TextField 所在的同一个 MovieClip 中。一切正常。当用户单击其他可见的输入 TextField 时,我想从舞台(从 MovieClip 舞台)中删除键盘,其中将显示新键盘。

如果我从 MovieClip 检查失去焦点,无论我点击键盘(但不是输入文本字段),它都会关闭,因为舞台失去焦点。有没有办法检查是否有孩子没有焦点,所以我可以在那一刻关闭键盘?换句话说,检查焦点是否完全从 MovieClip 阶段移到另一个阶段。

【问题讨论】:

  • 对不起,我找到了另一个解决方案,没有检查焦点......
  • 请回复您找到的解决方案,以便其他有相同问题的人从中受益
  • 我有带静态变量的全局类。当我选择一个字段进行编辑时,会显示键盘并设置一个变量,我们称之为 activeText 来输入文本元素。如果我在没有关闭键盘的情况下切换到另一个输入字段,我会检查是否设置了 activeText 变量。如果是这样,我只需在该输入框容器上运行脚本以关闭键盘,然后在新选择的输入字段上设置新键盘。并不是说单击输入字段的计时器在启动键盘之前会等待大约 0.1 秒,因此删除键盘并重置变量 activeText 将在实际打开新键盘之前完成。

标签: actionscript-3 flash keyboard focus


【解决方案1】:

我想您只是在寻找 FocusEvent 如果您需要检查对 MovieClip 的孩子的关注,您必须将侦听器附加到所有孩子。

【讨论】:

  • 不,我没有给所有的监听器都附加监听器,这太过分了,因为单个主类有很多孩子,孩子们有自己的孩子......检查所有内容太复杂了他们每次。它们是屏幕上的几个“主类”,每个都有类似的子类,其中包含文本输入框和键盘。一个“主要课程”中有太多项目,无法每次检查。无论如何,我已经将键盘作为一个自己的类移出,显示在选定的输入框下方。
  • 有关信息,您可以将FocusEvent 附加到主父类,然后使用target 获取您的TextField (e.target as TextField)
猜你喜欢
  • 1970-01-01
  • 2014-05-22
  • 1970-01-01
  • 2014-09-23
  • 2017-06-24
  • 1970-01-01
  • 2012-05-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多