【问题标题】:How can I detect a selectable static text field in AS3?如何检测 AS3 中的可选静态文本字段?
【发布时间】:2013-03-06 02:37:48
【问题描述】:

我的 Flash 项目中有可选择的静态文本字段,我需要在 MOUSE_MOVE 事件中将它们检测为目标。我知道很难检测到StaticText 类,但是如果静态文本字段是selectable,它就会变成TextField 类。动态文本,也是 TextField 类,很容易检测到,但是当涉及到可选择的静态文本时,我无法正常工作。当我尝试在MOUSE_MOVE 事件上跟踪event.target 时,如果我将鼠标悬停在可选择的静态文本字段上(如果它是动态文本字段,我会得到 [object TextField]),它不会跟踪任何内容。为什么同一个类的动态文本和可选静态文本的行为如此不同?以及如何检测MOUSE_MOVEMOUSE_OVER 事件上的可选静态文本?

【问题讨论】:

    标签: actionscript-3


    【解决方案1】:

    为什么不能动态设置?静态和动态都扩展了 TextField。但是属性设置不同。在这种情况下,动态文本将 mouseEnabled 设置为 true,而静态文本将其设置为 false。而且一般不听mouseEvents。

    编辑: 您可以在动态 TextField 中输入 html 文本 -> htmlText

    【讨论】:

    • 我需要静态文本,因为它允许在同一文本字段中以不同于其他文本的方式格式化单独的单词。如果我尝试用动态文本将一个单词加粗,它会使所有单词都加粗。
    【解决方案2】:

    正如您在 StaticText 类的参考资料中看到的:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/text/StaticText.html#eventSummary 它不会调度任何 MouseEvent 事件,因此无法在静态文本字段上侦听 MOUSE_MOVE 事件。您可以做的是遵循您上次提出此问题时提出的建议之一:How can I detect StaticText in AS3?

    【讨论】:

    • 正如我已经说过的,当您使静态文本可选择时,它变成了 TextField 类,它的行为应该与 StaticText 类不同。
    • 虽然看起来将其设置为可选会导致静态文本字段将自己报告为TextField 类的成员,但它仍然不会调度任何MouseEvent 事件。 M4tchB0X3r 建议使用动态字段可能是可行的方法,除非您计划使用动态文本字段中不支持的下标或上标文本。正如他们建议的那样,如果您将文本字段设置为允许 html 文本,您将能够单独格式化单词。
    猜你喜欢
    • 1970-01-01
    • 2018-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多