Неверное расположение всплывающей подсказки - PullRequest
0 голосов
/ 19 февраля 2010

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

<mx:HBox>

    <mx:Button id="btnBack"
                label="Back"
                click="btnBack_click();" />

    <mx:Button id="btnFirstLoadDemo"
                label="First Load Demo"
                click="btnFirstLoadDemo_click();" />

</mx:HBox>

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

var pt:Point = new Point(btnFirstLoadDemo.x, btnFirstLoadDemo.y);
pt = btnFirstLoadDemo.contentToGlobal(pt);

После преобразования точки с помощью contentToGlobal ()координата x точки совершенно неверна.

Я нашел способ обойти это, просто обернув целевой компонент в другой HBox, например:

<mx:HBox>

    <wcb:Button id="btnBack"
                label="Back"
                click="btnBack_click();" />
    <mx:HBox>
        <wcb:Button id="btnFirstLoadDemo"
                label="First Load Demo"
                click="btnFirstLoadDemo_click();" />
    </mx:HBox>

</mx:HBox>

Любая идея, что происходитздесь

1 Ответ

1 голос
/ 19 февраля 2010

Вы смешиваете координатные пространства. x и y находятся в координатном пространстве родительского контейнера, но вы выполняете преобразование, как если бы они были в координатном пространстве самой кнопки.

<mx:HBox id="container">
    <mx:Button id="btnBack" />
    <mx:Button id="btnFirstLoadDemo" />
</mx:HBox>

с

var pt:Point = new Point(btnFirstLoadDemo.x, btnFirstLoadDemo.y);
var globalPoint:Point = container.contentToGlobal(pt);
...