Jumpy Flex макет - PullRequest
       32

Jumpy Flex макет

0 голосов
/ 18 января 2011

Я относительно новичок во Flex, однако мне пришлось взять на себя обслуживание и разработку приложения после небольшого кризиса. Я знаком с AS3 и ООП в целом, если это поможет.

Приложение построено с использованием Flex Builder 3, Flex SDK 4.1 и основано на теме Halo. Main.mxml содержит несколько кусочков навигации, границы приложения и холста с именем заполнителя.

Когда пользователь перемещается по сайту, состояние Main.mxml изменяется, и на основании этого соответствующий «экран» затем заменяется внутри заполнителя без применения анимации (иногда ProgressBar останавливает выполнение до тех пор, пока данные не будут загружены) , Каждый экран имеет тот же размер, что и основное приложение, основанный на mx:Canvas и настроенный так, чтобы позиционировать себя на 0,0, заполняя все окно.

Прежде всего, это хороший подход, не могли бы вы дать какие-то рекомендации по поводу изменений?

Далее, некоторые экраны страдают от каких-то странных скачков с макетом и позиционированием, и я не могу понять почему. Это происходит на ряде визуальных элементов.

Мой первый пример - кнопка, созданная с использованием элементов управления hbox, image и text. Hbox был изменен, чтобы включить градиентные фоны, однако проблема возникает при использовании mx hbox по умолчанию. Первое изображение на первом рендере не имеет взаимодействия, второе - после того, как я наведу на него мышь, а 3-е (и правильное) изображение - после того, как покинул этот экран и затем вернулся. Обратите внимание, что он больше не обрезается и содержит закругленные углы с правой стороны.

Example 1

Мой второй пример сложнее для захвата, но у меня есть серия из 4 кнопок градиента, основанная на расширенной оболочке кнопки flexlib , сложенной в mx:vbox. На первом дисплее они верны, на втором они выглядят правильно, но при наведении на них что-то меняется, но я не уверен, что заставляет кнопки внизу опускаться примерно на пиксель для каждой надетой кнопки. После того, как каждая кнопка вызвала этот скачок, все снова в порядке.

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

Большое спасибо за любую помощь

РЕДАКТИРОВАТЬ - Успех

После многих часов попыток порекомендовать ваши предложения и поочередно убирать элементы со сцены, я обнаружил, что источником проблемы является свойство borderMetrics элемента управления VideoDisplay. После их удаления (я даже не уверен, почему они вообще были там) все странные проблемы с отображением, от которых я страдал, исчезли.

Большое спасибо за предложения!

Ответы [ 2 ]

0 голосов
/ 21 января 2011

После многих часов попыток сделать ваши предложения и позаботиться об удалении элементов со стадии один за другим, я в конце концов обнаружил, что источником проблемы является свойство borderMetrics элемента управления VideoDisplay.После их удаления (я даже не уверен, почему они вообще были там) все странные проблемы с отображением, от которых я страдал, исчезли.

0 голосов
/ 18 января 2011

Я бы рекомендовал опубликовать некоторый код для вашей кнопки, чтобы мы могли проанализировать его, но то, что вы видите, является результатом многократного измерения компонента.В прошлом я боролся с этим, либо устанавливая явные размеры компонента и его подкомпонентов, и / или добавляя разумно размещенные свойства minWidth = "0" для компонентов / подкомпонентов.Последнее - старая хитрость, заставляющая компонент правильно измерять себя.Надеюсь, это поможет.Если нет, отправьте код.Удачи.

...