Авг 04

Лично я считаю лучшим фреймворком Robotlegs. Я в нем не нашел слабых мест и считаю его почти совершенным MVCS фреймворком. Там более совершенно устроены injections, чем в mate. Там все делается на уровне мета-программирования, что все очень комфортно. Кроме того, есть возможность использовать не Flash’овую событийную систему, а использовать Signal’ы.

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

С Cairngorm’ом работал давно.. помню только мнение, что он убог.. а конкретики не помню.. Кажется там не была предусмотрена возможность приложения не с одним ядром (multicore)

Mate мне вааще не понравился… там все зашито в (m)xml… вот один из примеров: в метод инвокере зашито имя метода как строка.. что затрудняет рефакторинг.

Короче, после того как начнешь работать в Robotlegs — тебе покажется убогим любой другой фреймворк.. мое мнение...
Там все сделано круто, через метатэги и метопрограммирование, возможно юзать сигналы.. короче, самый крутой фреймворк...

Смотреть дискуссию на ruFlex’е

Tagged with:
Июн 18

Если нужно масштабировать картинку относительно контейнера так, чтобы в контейнере не осталось незаполненных мест (то есть, мастабировалось по минимальной стороне), то можно использовать этот алгоритм:

var scale:Number = Math.max(container.height / image.height,
	container.width / image.width)
image.scaleX *= scale;
image.scaleY *= scale;
Tagged with:
Фев 24

Набросал свое портфолио на Google Sites. Не удалось вспомнить и отыскать скриншоты всех проектов, так как надо было сделать портфолио быстро. Пока добавил только 3 проекта… Позже, когда буду разгребать завалы на винте – добавлю остальные :)

Continue reading »

Tagged with:
Фев 24

Было интересно, какие есть компоненты для отображения полноценного (или почти полноценного) HTML во Flash/Flex. В частности, необходима загрузка внешних CSS файлов, кастомные стили и прочее (кстати, js – не нужен). И вот что мне удалось найти:

  • IFrame – там iframe накладывается поверх флешки с помощью js. Где-то же наткнулся на статью что так делать не стоит ибо <список причин>.
  • HTMLWrapper – его сейчас и ковыряю… Похоже, подводных камней там много. Но это не браузер, который в плеере, который в браузере… Он сам все парсит, сам все лоадит и сам все рисует…
  • Платный компонент HTML Component for Adobe Flex – но хотелось бы все таки что-нибудь опен-сорсно-бесплатное..

Похоже, HTMLWrapper – это вариант, который подходит лучше всего.

Tagged with:
Фев 08

Вопрос на ruFlex:

Есть пустой DataGrid после загрузки xml динамически создаются столбцы (с соответствующими названиями ) и распихиваются данные. Это все работает.
Но в xml в одном из столбцов могут быть адрес картинки, нужно чтобы вместо адреса в столбец внедрить Image и в него грузить картинку по этому адресу. Понимаю, что как-то через itemRenderer делать надо, но пока не получилось.

Посмотреть ответ

Tagged with:
Фев 06

Я написал библиотеку Twitter API на ActionScript 3.0 для Adobe Flash, Adobe Flex, Adobe AIR. Она использовалась и тестировалась на Adobe AIR. Аутентификация с сервером происходит по протоколу oAuth и реализована с использованием библиотеки oAuth на ActionScript 3.0.

Библиотека Twitter API на ActionScript 3.0 доступна на Google Code.

Tagged with:
Янв 15

Пусть есть два флексовых компонента, которые добавлены внутрь флексовго контейнера (например, HBox). Нужно поменять их местами в Display List’е. С помощью swapChildren это сделать не получится, так как он выкидывает исключение.

Получилось, когда я переписал используя getChildIndex и setChildIndex. Получилось что-то вроде такого:

var index1:int = screen.getChildIndex(screen.component1);
var index2:int = screen.getChildIndex(screen.component2);
screen.setChildIndex(screen.component1, index2);
screen.setChildIndex(screen.component2, index1);

Опубликовано в обсуждении в группе ruFlex.

Tagged with:
Янв 15

Что лично мне в PureMVC не нравится – так это его широковещательность…
К примеру, у меня есть один Proxy (P1) и 2 медиатора (M1 и M2).
Оба медиатора могут посылать команду C1, которая вызывает метод из P1 (например, метод search). Этот метод search осуществляет поиск на сервере и посылает SEARCH_SUCCESS и SEARCH_FAILED в случаях удачи/неудачи…
А не нравится мне как раз то, что если обоим медиаторам M1 и M2 нужен результат поиска, то им придется слушать результаты друг друга.. и фактически, нам 2 раза приходит SEARCH_SUCCESS или два раза SEARCH_FAILED каждому… Причем, один из них нам надо отвергнуть (у каждого медиатора – свой). Кстати, тут возникает проблема идентификации – как можно определить что конкретному медиатору нужен конкретно этот Notification (ну, понятно, это делается либо по самой строке поиска, либо по какому-либо id)…

Короче, эта бродкастовость, немного напрягает…

Continue reading »

Tagged with:
Окт 23

Долго искал причину, почему в компоненте mx.controls.Text не поддерживается тег <img> в свойстве htmlText. Уже и по исходникам Flex’а пробежался. Хоть убей, не мог понять почему оно убирает из этого свойства все теги <img>… До тех пор, пока не нашел в документации к IUITextField‘у, который там активно используется:

For AIR content in the application security sandbox, AIR ignores img tags in HTML content in ActionScript TextField objects. This is to prevent possible phishing attacks,

Тупые фишинговые атаки. Читайте документацию, господа. Это экономит время!

Сен 04

В библиотеке от Iotashan‘а была ошибка работы с расширенными UTF-8 символами. А именно, с использованием его класса URLEncoding при использовании этих символов (например, с символов русского языка) в параметрах считалась неверная сигнатура.
В одном из комментариев его блога было предложено заменить использование класса URLEncoding на использование функции encodeURIComponent. Однако, в этом случае такая же ошибка выдавалась во время использования некоторых спецсимволов (‘!’, ‘*’, возможно, некоторые другие).

Continue reading »

Tagged with:
preload preload preload