Есть ли способ показать errorTip (error ToolTip) слева от цели? - PullRequest
0 голосов
/ 20 декабря 2010

Я создаю сообщение об ошибке, которое отображается при наведении мыши на изображение. Мне бы хотелось, чтобы всплывающее окно отображалось на слева изображения, но единственными свойствами, которые я могу передать для создания всплывающей подсказки, являются "errorTipRight", "errorTipAbove" и "errorTipBelow".

Есть мысли?

Пример кода:

<?xml version="1.0" encoding="utf-8"?>
<mx:HBox xmlns:fx="http://ns.adobe.com/mxml/2009" 
         xmlns:s="library://ns.adobe.com/flex/spark" 
         xmlns:mx="library://ns.adobe.com/flex/mx">
    <fx:Script>
        <![CDATA[
            import mx.controls.ToolTip;
            import mx.managers.ToolTipManager;
            [Embed(source="assets/some_image.png")]
            [Bindable]
            private var myIcon:Class;

            private var myToolTip:ToolTip;

            private function showToolTip(evt:MouseEvent, text:String):void
            {
                var pt:Point = new Point(evt.currentTarget.x, evt.currentTarget.y);
                pt = evt.currentTarget.parent.contentToGlobal(pt);

                // I WANT TO POP THE ERRORTIP UP TO THE LEFT HERE INSTEAD OF ABOVE.
                myToolTip = ToolTipManager.createToolTip(text, pt.x, pt.y, "errorTipAbove") as ToolTip; 
                var yOffset:int =  myToolTip.height + 5;
                myToolTip.y -= yOffset;
            }

            // Remove the tooltip
            private function killToolTip():void
            {
                ToolTipManager.destroyToolTip(myToolTip);
            }
        ]]>
    </fx:Script>
    <mx:Image source="{myIcon}" mouseOver="showToolTip(event, 'My ToolTip Message Goes Here')" mouseOut="killToolTip()" />
</mx:HBox>

Ответы [ 2 ]

1 голос
/ 28 декабря 2010

Вам потребуется создать замену для класса ToolTipBorder и назначить его в качестве обложки для всплывающей подсказки.Я бы сделал это, скопировав источник ToolTipBorder и изменив методы updateDisplayList и borderMetrics, чтобы включить новый стиль "errorTipLeft" в операторы switch в этих методах.Затем назначьте этот класс скина классу ToolTip в CSS.Надеюсь, это поможет.

0 голосов
/ 21 декабря 2010

Почему вы не можете вычесть ширину всплывающей подсказки из pt.x, когда вы даете координаты ToolTipManager?

myToolTip = ToolTipManager.createToolTip(text, (pt.x - somewidth), pt.y, "errorTipAbove") as ToolTip; 
...