【问题标题】:FLEX: is "Tooltip" an option if I want a caption with buttons?FLEX:如果我想要带按钮的标题,“工具提示”是一个选项吗?
【发布时间】:2015-09-30 20:08:08
【问题描述】:

如果我想要带有按钮的标题,“工具提示”是一个选项吗?

我实际上需要在我的对象顶部添加一个淡入字幕而不改变它的宽度。 (我想不会直接将淡入字幕添加到 MXML 组件中。

我想知道 Tooltip 是否可以用于此。可以点击吗?并向其中添加自定义组件?

谢谢

【问题讨论】:

    标签: actionscript-3 apache-flex flex3


    【解决方案1】:

    无法点击工具提示。如果您需要弹出用户可以与之交互的其他类型的容器,您应该使用 PopupManager。

    【讨论】:

    • 感谢您的回复。我可以在翻转/退出时添加和删除弹出窗口吗?还是计算量太大?例如,我连续有 30 个组件,每个组件都有自己的弹出窗口。当我将鼠标移到它们上方时,相关的弹出窗口应该变得可见并消失。
    • 此外,如果我将鼠标从组件中移出并移到弹出窗口上,它应该保持可见。谢谢
    • 是的,您只需添加适当的事件侦听器并在处理程序中调用 close() 方法。
    • 我怎样才能更精确地做到这一点?我正在考虑在鼠标移出事件上使用 Timer,并添加一个“如果鼠标不在弹出窗口上”然后你可以关闭它。
    • 你在这里谈论一个混合项目,说你想点击它,但你想让它像一个工具提示一样。在某些时候,您必须下定决心。如果您想在鼠标移出时淡出,请使用您的计时器。否则,最好向 SystemManager 添加一个单击处理程序,以便用户单击的其他任何地方都会关闭弹出窗口。右上角还有一个“X”按钮,可以肯定地关闭弹出窗口。
    【解决方案2】:

    没有工具提示不是一个选项。它用于显示一些标题。

    //dataTipFunction
    
    public function dtFunc(hd:HitData):String {
            return hd.item;
    }
    

    现在,如果您想在标题上添加可点击的内容,您可以在要显示的内容上显示自定义标题。您需要创建一个组件并覆盖 updateDisplayList 方法

     override protected function
            updateDisplayList(unscaledWidth:Number,unscaledHeight:Number):void {
    }
    

    这个方法会确定你的组件是怎样的,然后你需要使用 invalidateDisplayList();以及其他关于重新绘制组件时组件行为应该是什么的方法。

    【讨论】:

    • 抱歉,您能详细说明一下吗?对于“重绘我的组件”,您的意思是添加/删除子组件?那么我可以在 MXML 中声明,而不是在 actionscript 代码中添加或删除它们吗?但我主要关心的是即使我在其中添加了标题,也要保持组件的初始宽度相同。这可能吗 ?否则我需要在它之外添加标题
    • 我认为您通过拆分来限制字幕长度。这将确保您不必担心不会扩展的组件的宽度。我已回复您关于此连接的其他帖子。
    猜你喜欢
    • 1970-01-01
    • 2020-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多