Неверное расположение всплывающей подсказки
Допустим, я пытаюсь разместить всплывающую подсказку на левой стороне компонента в моем представлении. Макет может выглядеть примерно так:
<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 ответ
Решение
Вы смешиваете координатные пространства. 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);