← All posts tagged Flex

develar
Flex Я ненавижу инженеров флекса. Эти талантливые ребята

— напишут свой focusManager, но потом для установки фокуса все равно будут использовать stage.focus,

— напишут кучу абстракций и кучу кода, дабы вот-вот не дернуть stage при позиционировании чего-то абсолютного (toolTips, compobox, stageText, popUp), но каждый раз при каждом использование они это API используют по разному и результат всегда разный (но никогда не является правильным). А тут рядом ребята юзают тупо localToGlobal/globalToLocal и оно прекрасно работает хоть в дизайнере, хоть в production.

— напишут интерфейс IActiveWindowManager, но свое гребанное свойство в своем гребанном "мы идиоты, убейте нас за 3500 гребанных строк" StyleableStageText типизируют конкретным классом.
develar
migLayout Flex MigLayout тем хорош, что может сообщить вам min размер контейнера. А флексовые могут тупо вернуть 30, хотя на самом деле это явно не так.
develar
Flex plus.google.com Люди во флеше реально не понимают всего ужаса H/V верстки и в глаза не видели нормального дизайнера типа Window Builder Pro от Google (сравните его с layout настройкой во Flash Builder).

Повторю вопрос, заданный полтора года назад — "сколько займет тоже у вас на флексе для вот такого" juick.com

"Потому что никто не позаботился рассказать, в чем заключается твой вариант :)" ok, будет, будет описание.
develar
Flash migLayout Flex Портировал MigLayout для флеша. miglayout.com javalobby.org (обратите внимание на параграф "No Panels in Panels")

Для флеша — не имеется ввиду для чистого флеша как готовый полноценный layout manager для Sprite/MovieClip/Shape.

Есть определенный нюанс, связанный с тем, что компонент должен хранить свой preferred size, а при установке ему actual size продолжать помнить о своем preferred size. Ни флеш, ни minimalcomps данную концепцию не поддерживают. Смотрите флешку — dl.dropbox.com и dl.dropbox.com (это пример как на главной странице miglayout.com).

Если для shape.swf менять размеры страницы, то черные кубики (это label) сразу же уменьшаться, а красные займут место (потому что для них установлен grow). Потому что min size отдается для них как 0.
То же самое и для minimal comps (только там оно может draw и менять свой width).

github.com

Код флешки — github.com

Таким образом, без дополнительных усилий, всякие умные constraints типа grow для чистого флеша работать не будут (только в первый проход до изменения размеров контейнера). Но реализовать два интерфейса (net.miginfocom.layout.ComponentWrapper и net.miginfocom.layout.ContainerWrapper.as) и один фасад (типа github.com ) для вашего любимого ui-фреймоворка особых проблем не составит.

Сделано это было для Flash UI Designer в Astella/IntelliJ IDEA, который уже скоро будет уметь визуально строить интерфейсфы для флеша. В первую очередь, разумеется, для флекса. А MigLayout это как раз та самая серебряная пуля, которая отправляет в топку весь тот зоопарк посредственных layouts, что существуют, при этом оставаясь понятным (layout constraints задаются строчками, декларативно, смотрите документацию на miglayout.com ).
develar
migLayout Flex В тему juick.com — из той же статьи, да архитекторы флекса не учли ошибки —

"The min/preferred/max size of a component is usually delivered by the UI delegate, and that for a good reason; the delegate has intricate knowledge of the component and how it will look its best. Now, that is true for the component, but it is you that want to say how it should look, taking these sizes into account."

То есть да, уйти от наличия в ui-component размером мы не можем, но мы должны только получать их оттуда — это нужно для кастомных компонент, размер которых определяется неким внутренним знанием. А вот установку размеров нельзя ни в коем случае — "Changing these component sizes directly on the component/widget, for the sake of making the layout look right, is the wrong way to go since the interpretation of these sizes is different for different layout managers."
develar
migLayout Flex Мычта — javalobby.org No Panels in Panels "In fact, when I was doing the mandatory research for how general layouts looked like (using Windows XP's and Mac OS X's standard dialogs as examples) the goal was to create a layout manager that was so flexible that every dialog could be done with one layout for every tab."
develar
Flex Только одного не понял — зачем нужен тогда флеш на десктопе, если флекс в топку, а все не app-темы типа можно делать на html x?
develar
Flex Непостижима мудрость талантливых инженеров Adobe. Для boolean в CSS Flex SDK 4.6 ставить null через ClassReference(null). И, да, есть сомнения, а вдруг оно благодаря талантливым инженерам компилятора трансормируется в true?
develar
uiDesigner IDEA Flex Astella IDEA-74990 dl.dropbox.com Теперь Flex UI Designer проверяет класс корневого тега на наследование от flash.display.DisplayObjectContainer и наличие пространства имен ns.adobe.com (то бишь документ должен быть MXML 2009). Как видно на скриншоте, это minimalcomps.

Версия 0.6.3 ( plugins.intellij.net ) для Idea или следующий Astella EAP (будет скоро, confluence.jetbrains.net ).

Тот, кто писал в трактор об этой возможности — ага, ждем баг-репортов ;)

Ожидаемые проблемы при редактировании — некорректная работа getObjectUnderPoint (а также fillBreadcrumbs) — то есть выше выделение мышкой выделяет не тот объект, — поддержка smart selection только для флекса (то есть в pure оно может выбрать textLine, и вместо PushButton выберет его inner textField).

Это фича не является приоритетной и планируемой, поэтому если хотите чтобы оно работало — пишите в трактор (проект Astella, разумеется).
develar
Flex Astella Astella решает одну из врожденных проблем флексового проекта — желание иметь из одних исходников и запускаемое приложение, и библиотеку для линковки. В Java благодаря нормальной архитектуре такой проблемы нет, а в выросшем из понятно откуда флексе есть. А в Astella можно на один модуль иметь сколько угодно много build configurations (то бишь артефактов).
develar
IDEA Flex Когда IDEA генерит сеттер/геттер для поля, поле переименовывается с подчерком (name => _name) и все текущие usages меняются (name = "t" => _name = "t). Считаете ли вы такое поведение ожидаемым или же нет (то есть в данном случае установки значения ожидаете использования нового сеттера, а не старого поля)?
develar
Maven Flex justinjmoses.wordpress.com "Flex and Maven, and we’ve finally been given the word: support is coming – we just don’t yet know what form it’s going to take" Очень хотелось бы, чтобы эта команда таки нашла команду работающую над новым компилятором, потому что текущий позор общения фактически через построение CLI aware configuration (то есть тупо строка) напоминает текущий позор с API fdb.