Как использовать автоматическую разметку, сохраняя некоторый контроль? - PullRequest
0 голосов
/ 16 сентября 2010

У меня есть две панели и кнопка, вложенная в hbox.Я хочу, чтобы панели появлялись рядом, а кнопка появлялась под обеими панелями, расположенными на равном расстоянии от сторон hbox (то есть в центре).

Получение панелей бок о бок было легко, но как мне получить кнопку под обеими панелями и в центре.В настоящее время кнопка отображается справа от второй панели.

1 Ответ

0 голосов
/ 16 сентября 2010

Было бы легче ответить, если вы покажете свой код.

но я вижу два подхода.

Используйте вложенные контейнеры, что-то вроде этого:

<mx:HBox>
 <mx:VBox>
  <mx:panel />
  <mx:panel />
 </mxVBox>
 <mx:button />
</mx:HBox>

Это будет работать, но добавит в ваше приложение лишние контейнеры, что в долгосрочной перспективе может вызвать проблемы с производительностью.

Второй подход заключается в расширении UIComponent и использовании updateDisplayList для расчета размера и расположения ваших детей. это сложнее, но дает вам гораздо больше контроля. Мне не хватает приключений, чтобы написать реальный код для этого в браузере, но код psuedo может выглядеть примерно так:

override public function updateDisplayList(unscaledHeight:Number, unscaledWidth: Number){
 panel1.x = 0
 panel1.y = 0;
 panel2.x = panel1.width;
 pane2.y = 0
 button.x = panel1.height;
 button.y = 0;
}

Это был бы мой предпочтительный подход, хотя он не так прост, как первый.

...