Средства программной анимации: где взять, что и получить за это.

February 1, 2008 – 2:06 pm

Большинство наверое использовала в своих проектах для программной анимации класс mx.transitions.Tween, так знайте он не одинок в своем роде). Кто его не видел — исправляетесь, прочитав его описание с примерами.

Всего существует несколько проектов, которые помогают программировать анимацию, в начале классы от “родного” производителя:

  • mx.transitions.Tween, есть как и в CS3 так и МХ-8 флешах )
  • mx.effects.Tween есть в как и в AS2 так и AS3 вариантах, AS3 примечателен тем, что лежит в основе всех эффектов используемых во Flex, в использовании не очень удобен, но терпим, он единственный доступен, по умолчанию, во флексе.

Оба класса имеют недостатки: если экземпляр класса описан как локальная переменная то мусорщик свободно может его убить и эффект не до играет до конца.

И классы от стороннего производителя:

  • Tweener (caurina.transitions.Tweener), домашняя страничка
    Радует поддержкой ActionScript 2.0, for Flash 7 and Flash Lite 2.0 ActionScript 2.0, for Flash 8, ActionSctipt 3.0, также портирован для JavaScript и haXe. Рост тоже очень радовался за него.
  • TweenLite, обещают быструю производительность и дополнительные настройки уравнений движения. Есть версия для ActionScript 2.0 и ActionScript 3.0, Страницы содержат описание, примеры кода и использования данного класса
  • AS3 Animation System v2.0 — много очень много разных плюшек, заточеных под AS3, нужно просто полистать документацию (лежит в архиве с исходниками лежит в архиве с исходниками )
  • GOASAP. Самый шустрый из твинов. Ребятки чтобы доказать это наваяли тесты производительности

Отдельно о тестах.

benchmark

Как видно из этой диаграммы cтандартный твин просто отдыхает, что есть обидно( а если учитывать ресурсоемкость флекс-фреймворка то это вобще плохо.

В данной статье я не рассматривал классы которые имею только AS2 версию, потому что это уже не актуально!


VIVA_INDIA, или будте внимательны когда описываете события

January 23, 2008 – 8:47 am

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

Для этого делаем так:

Класс события:

package com.the33cows.somepackage
{
import flash.events.Event;

public class SomeEvent extends Event
{
public static const VIVA_INDIA : String = "vivaIndia";
.......

}

Класс:

package com.the33cows.somepackage
{
import flash.events.EventDispatcher;

[Event(name="vivaIndia", type="com.the33cows.somepackage.SomeEvent")]

public class SomeEventDispatcher extends EventDispatcher
{
...
}
}

теперь при наборе кода получаем такое:

что есть очень приятно).

Я всегда себе задавал вопрос почему, адоб использует именно такую конструкцию

[Event(name=”vivaIndia”, type=”com.the33cows.somepackage.SomeEvent”)]

по-моемому было бы логичнее использовать

[Event(name=”VIVA_INDIA”, type=”com.the33cows.somepackage.SomeEvent”)]

т.е. прямую ссылку на константу хранящую конкретное название события, а не само название события, но так не найдя на него ответа, решил, что так нужно и парсер “умный”, он сам на лету привязывает конкретную константу с именем события к этому тегу.

Оказалось парсер безумно туп!

У меня образовалось событие в названии которого были несколько прописных букв подряд

для наглядного примера:

public static const VIVA_INDIA : String = "VIVA_INDIA_OMG";

для него метатег выглядел так

[Event(name="VIVA_INDIA_OMG", type="com.the33cows.somepackage.SomeEvent")]

на что я в ответ получил:


Правда не очень привлекательная картина? )

Справедливо как для 2.0.1 так и для 3 го билдера

Будьте счастливы и кодируйте с миром ).


Юбилей one-face.ru!

January 23, 2008 – 3:13 am

У проекта one-face.ru юбилей — к ним присоединился 100 участник с чем их и поздравляем!
Тадам!


Сюрпризы от Eclipse 3.3 и Flex Builder 3

January 5, 2008 – 10:26 am

Первый сюрприз подкинул Eclipse 3.3,
который отказался запускаться после того как я в eclipse.ini указал параметр -Xmx1024m, с чем это связано незнаю.
В ходе эксперимента установил что, джек пот срывается при значении -Xmx777m ) т.е. 776 еще работает, а вот 777 нет. Кто может объяснить причину этого?
Правда билдер 3 работает пошустрее и этот параметр уже не так страшен как раньше.

Второй сюрприз подкинул Flex Builder 3.
Я обычно ставлю билдер как плагин к эклипсу. Периодически, для экспериментов, я доставляю на этот же эклипс другие плагины. В ходе эксперимента я полез в папку где живет мой эклипс посмотреть на файлы свежеустановленного плагина и обнаружил, что этих файлов нету! В самой среде плагин есть, работает, показывает все хорошо.
Оказалось, что после установки Flex Builder 3, он “тянет одеяло на себя” и все последующие плагины ставятся в папку C:\Program Files\Adobe\Flex Builder 3 Plug-in\eclipse . Так что если вы ненароком снесете папку с Flex Builder 3 Plug-in то можете оказаться и без других плагинов, в своем эклипсе.
Решить проблему просто — во время установки новых плагинов обращайте внимание на путь куда они ставятся и указывайте им нужный вам путь.


Мелочи

December 24, 2007 – 2:43 pm

Давно что-то не писал, накопилось много мелочей о которых иногда полезно знать, а иногда просто не стоит обращать внимание:

  • Во флексе есть фича что он автоматом лишнии убирает пункты меню которое появляется при нажатии правой кнопки мыши. Это приятно, но стоит знать что при создании попапа с помощью PopUpManager этой фичи нету (все пункты меню имеют место быть) и их нужно отрубать ручками.
  • ФФ, делаем так: открываем приложение (желательно тянущееся чтобы наглядно было), открываем второй таб, переходим в него, ресайзим окно браузера, и возвращаемся на наше приложение и видим бяку: флеш и не думал ресайзится (повторный ресайз исправляет ситуацию)).
    UPD: решение проблемы подсказал 7htsky : “надо поставить margin: 1px 0 0 0, нашли решение тут
  • Ситуация: есть ваш компонент наследованный от чего-то и его нужно использовать вместо стандартного, внутри используются стейты (например ваш мега TitleWindow внутри него 48 состояний) если стейты объявиться <mx:states /> то будет ругаться, стейты нужно объявлять просто <states />
  • Все лаяут контейнеры (Canvas, Box…) плохо дружат со скроллерами (также как это делает ИЕ) — если ширина контента выставлена 100%, а по высоте контент больше чем контейнер то появляются 2 скроллера вертикальный и горизонтальный причем горизонтальный скролит именно на ширину появившегося вертикального скроллера (не приятно это, то ли дело ФФ :) )
  • Проекта MyLar больше нету,его переименовали в Mylyn. Почитать что это за птица.
  • Флеш блох оказывается очень много ) и они часто появляются.

Глобальные посты и темы будут попозже — сейчас идет подготовка к новому году)



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