Stage vs SystemManager

Sunday, July 6th, 2008

Пользователям флекс фреймворка советуют использовать SystemManager вместо Stage (ну или я не так это понимаю)

All keyboard and mouse activity that is not expressly trapped is seen by the SystemManager, making it a good place to monitor activity should you need to do so.

Раз советуют, значит так нужно, но не всегда советы работают как нужно!

Неудобства начинаются когда мы хотим что-то потаскать мышкой. Если использовать startDrag() или слушать событие MouseEvent.MOUSE_MOVE/MouseEvent.MOUSE_UP, то при уводе мыши за границы флеш плеера объект просто залипает на последней позиции позиции мыши в окне флеш плеера. Если опустить мышь за окном плеера, то по возвращению в плеер объект будет носиться за мышью до последующего клика. Побороть это можно повесив все события на Stage.

Эти штуки можно посмотреть в примере.

Используйте SystemManager с умом, но не забывайте про Stage.

ps. вордпресс отстой, операция вставки флешки превращается в извращения.

upd: забыл сказать, что в чистом АС3 проекте startDrag() и Stage ведут себя также плохо и хорошо



Flex framework — это не только ценный мех, но еще и 120-150K полезного кода!

Tuesday, May 20th, 2008

Сенсация, сенсация, срочно в номер!

Я знаю как уменьшить размер с 150 до 130 кб для флекс 3 приложения!

Теперь более осмысленые слова:

Многие жалуются, что флекс приложения имеют большой размер, и это в принципе так, 120-150 килобайт кода это не мало. Часто звучит вопрос как уменьшить размер получаемого кода.

Давайте для начала разберемся, что нам дается с этим кодом?

  • Прелоадер (у нас он есть по умолчанию и нам просто не нужно его создавать, мелочь но приятно)
  • SystemManager — все проиницилизирует и создаст условия для комфортной работы стандартных и наших компонент (он объеденяет все нижеприведеные фичи в одно единое целое и заставляет их работать)
  • DragManager — в пол пинка позволяет делать драг”н”дроп всего из всего и во все, для List компонент это делается установкой пары флегов в mxml
  • StyleManager — работа со стилями. Во флекс фреймворке это одня из самых главных фич, дизайн можно изменить легким движением руки, и менять его в рантайме, догружая особоскомпилированые файлы стилей
  • LayoutManager — позволяет нам делать различные выранивания и позиционирования, без линних рассчетов (не правда ли удобно написать в mxml-коде width=”100%” ?)
  • PopUpManager — создаем и манипулируем со всплывающими окошками
  • ToolTipManager — наши замечательные тултипы, всегда сверху, ничего лишнего ( toolTip=”эгегей это я “, помоемому отлично)
  • CursorManager — позволит менять и создавать свои курсоры
  • HistoryManager и BrowserManager — храним историю переключения наших состояний и меняем линки в браузере, это пока единственное от чего бы я смог отказатся по умолчанию во фреймворке
  • Биндинг — автоматическое обновление данных там где это нам нужно, удобно, безумно удобно, супер удобно, только на это мне не жалко 50-60К кода )
  • Стили по умолчанию — создав и запустив приложение мы получаем
    “раскрашеные” компоненты готовые к употреблению как они есть.

Согласитесь, что это совсем немало для для каких-то 120(150) килобайт кода! Если вы считаете, что тут много лишнего, то подумайте правильно ли выбрали среду разработки для вашего проекта, может все таки использовать Flash CS3 или голые AS3 проекты?

Помни: средняя фотка с фликера весит 100-150К, а страница баш.орг.ру — 200-300К

Я лично готов пожертвовать размером ради удобства и скорости разработки. Количество “динозавров” с модемами по 56кбит/с уже очень мало, стоимость мегабайта трафика уже не космическая, и задайтесь вопросом “нужно ли мое приложение всем?”, мой ответ: “кому оно нужно у того явно нет проблемы с интернетом!”

На последок открою тайну про уменьшение размера приложения.
В нагрузку к коду нам еще дают стиль по умолчанию, так вот если его “вырезать” ну или заменить на более легкий варинт то есть возможность съэкономить 10-20-30К кода, но зачем тратить это время? (самый простецкий способ это открыть framework.swc с помощью rar’а и почикать стили внутри него, если просто удалить их содержимое то проект запуститься но в рантайме будет ругатся, что ему нехватает запчастей)

Каждый должен знать, что приложение по умолчанию компилится в дебаг версию поэтому для релиз версии незабудь воспользоваться Project → Export Release Build…




]]> rss о RIA от 33 Коровы
Забадать RSS!
]]>
~~~~~~