Flex 3 — Использование пользовательских подсказок

#apache-flex #tooltip #buttonbar #custom-component

#apache-flex #всплывающая подсказка #панель кнопок #пользовательский компонент

Вопрос:

Я использую ToolTipManager, как описано ЗДЕСЬ.

Я хочу отобразить пользовательскую всплывающую подсказку для кнопок панели кнопок.

Объявление панели кнопок выглядит следующим образом:

 <mx:ButtonBar id="topToolbar" height="30" dataProvider="{topToolbarProvider}"
            iconField="icon" itemClick="topToolbarHandler(event)"
            buttonStyleName="topButtonBarButtonStyle"
            toolTipField="tooltip"/>
  

До этого все работало нормально. Я вижу, что во всплывающей подсказке отображается правильный текст.

Затем я создал пользовательский менеджер всплывающих подсказок, используя руководство, цитированное ранее:

 public class TooltipsManager
    {
        private var _customToolTip:ToolTip;

        public function TooltipsManager()
        {
        }

        public function showToolTipRight(evt:MouseEvent, text:String):void
        {
            var pt:Point = new Point(evt.currentTarget.x, evt.currentTarget.y);

            // Convert the targets 'local' coordinates to 'global' -- this fixes the
            // tooltips positioning within containers.
            pt = evt.currentTarget.parent.contentToGlobal(pt);

            customToolTip = ToolTipManager.createToolTip(text, pt.x, pt.y, "errorTipRight") as ToolTip;
            customToolTip.setStyle("borderColor", "0xababab");  

            // Move the tooltip to the right of the target
            var xOffset:int = evt.currentTarget.width   5;//(customToolTip.width - evt.currentTarget.width) / 2;
            customToolTip.x  = xOffset;        
        }

        public function showToolTipAbove(evt:MouseEvent, text:String):void
        {
            var pt:Point = new Point(evt.currentTarget.x, evt.currentTarget.y);

            // Convert the targets 'local' coordinates to 'global' -- this fixes the
            // tooltips positioning within containers.
            pt = evt.currentTarget.parent.contentToGlobal(pt);

            customToolTip = ToolTipManager.createToolTip(text, pt.x, pt.y, "errorTipAbove") as ToolTip;
            customToolTip.setStyle("borderColor", "#ababab");

            // Move tooltip below target and add some padding
            var yOffset:int =  customToolTip.height   5;
            customToolTip.y -= yOffset;    
        }

        public function showToolTipBelow(evt:MouseEvent, text:String):void
        {

            var pt:Point = new Point(evt.currentTarget.x, evt.currentTarget.y);

            // Convert the targets 'local' coordinates to 'global' -- this fixes the
            // tooltips positioning within containers.
            pt = evt.currentTarget.parent.contentToGlobal(pt);

            customToolTip = ToolTipManager.createToolTip(text, pt.x, pt.y, "errorTipBelow") as ToolTip;
            customToolTip.setStyle("borderColor", "ababab");

            // Move tooltip below the target
            var yOffset:int =  evt.currentTarget.height   5;
            customToolTip.y  = yOffset;        
        }

        // Remove the tooltip
        public function killToolTip():void
        {
            ToolTipManager.destroyToolTip(customToolTip);
        }

        [Bindable]
        public function get customTooltip():ToolTip { return _customToolTip; }
        public function set customTooltip(t:ToolTip):void { _customToolTip = t; }

    }
  

Теперь у меня начинаются проблемы…
Я пытаюсь использовать эту пользовательскую подсказку, но я не знаю, как заставить панель кнопок учитывать ее.

Я создал функцию, чтобы узнать, когда я смогу вызывать функции в моем TooltipsManager:

 public function showTopToolbarTooltip(e:ToolTipEvent):void{
            trace('blabla');
        }
  

Но, похоже, это никогда не учитывается. Я поместил эту функцию в разные события панели кнопок: tooltipcreate, tooltipstart, tooltipend, но ничего не происходит. Ни одной трассировки…

Кто-нибудь может сказать мне, где вызвать функцию моего ToolTipManager?

Большое спасибо за вашу помощь.
С уважением,
BS_C3

Ответ №1:

На самом деле, пропущена часть руководства =_= Прикрепление функций к событиям наведения / вывода курсора мыши… Извините за это.