#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:
На самом деле, пропущена часть руководства =_= Прикрепление функций к событиям наведения / вывода курсора мыши… Извините за это.