03/06/2009

Tips & Tricks 1

Опубликовано в: Опыт — Тэги: , , , — Nicolas Prof @ 19:17

Как и ранее обещал, начинаю рубрику полезных советов, наблюдений и уклонов от граблей. Поехали.

  1. Есть форма построенная на собственной разработки UI компонентах, очень любимых нами, или может даже с помощью стандартных компонентов, которые кстати очень даже качественно написаны. И при отправке формы, или при каких либо других действиях требующих от нас временного блокирования формы кто то возможно попробует перебрать список UI компонентов, и если это наши компоненты вызвать некий метод ui.active = false, или если стандартные, то ui.enabled = false. Но такая операция трудоемкая, совсем никому не нужный лишний цикл, плюс ко всему ошибки, если форма сложная, то еще и проверки. Так вот, делать это все не надо, потому как есть намного изящный и на порядок более быстрый подход, а так же из-за простоты реализации еще и снижающий вероятность ошибки. Для блокировки форм, и любых других интерактивных объектов, лучше всего использоваться Sprite. Если необходимо показать какое то модальное окно, то просто добавляем на Stage, наш блокирующий слой, у меня как правило он называется незамысловато _blockLayer. Блокирующий слой заливается посредством Graphics любым цветом с полной прозрачностью и не одно MouseEvent событие не пройдет сквозь блокирующий слой. А еще более быстрый способ, это не использовать Alpha, а использовать BlendMode. Так же закрашиваем блокирующий слой черным (кто не знает, это 0 или умнее 0х000000), и ставим _blockLayer.blendMode = BlendMode.ERASE.
  2. Отдавайте предпочтение маскам реализованным за счет Rectangle, т.е. anyDisObject.scrollRect = new Rectangle(0,0,100,50). Но не забывайте, для премущества от ScrollRect необходимо маскируемый объект кэшировать как изображение cacheAsBitmap = true. Есть несколько неудобств при использовании ScrollRect – при перемещении, необходимо постоянно обновлять прямоугольник anyDisObject.scrollRect = _dynamicRectangleRef, ну и естественно, что бы не создавать каждый раз новый объект, правильно изначально создать Rectangle, и менять нужные нам параметры: x, y, width, height.
  3. Перед удаление объекта с Display List, сделайте объект невидимым, objToDelete.visible = false. Освободите немного памяти, которой всегда нехватает.
  4. Если ссылке на объект типа Sound назначить null, то тяжелый объект будет сразу высвобожден с памяти.

07/05/2009

Hi, my name is Nicolasprof.com

Опубликовано в: Новости — Тэги: — Nicolas Prof @ 22:17

Произошли большие изменения, я покинул старый и бесплатный домен nicolas.org.ua, и приобрел nicolasprof.com. Теперь будет приятно организовывать иерархию пэкеджей. В связи с этим событием я готовлю PROFGallery 2.2 в которой многие вещи будут переписаны на более «правильный» лад, для более качественного и удобного сопровождения проекта, уже сейчас разрабатывается новый engine эффектов. Так же я создам новую категорию под названием «Опыт» в которой буду делиться опытом в тезисной форме, т.е. это не будут трактаты на пару страниц… После PROFGallery планирую плотно заняться PROFScript, и все же предоставить общественности релиз версию.

P.S.
Это сообщение было посвященно тем двум, трем людям, которые изредка посещают мой блог)

07/04/2009

Performance with Visible param and Display List

Опубликовано в: Эксперименты — Тэги: , — Nicolas Prof @ 21:20

Очень давно хотел провести тест на предмет того, как влияет на производительность параметр visible, а так же добавление и удаление объекта из Display List’а.
В тесте используется объект который имеет сложный вектор, тысячи точек. Объект можно удалять/добавлять в Display List, а так же запустить анимацию, и провести те же операции.
После этого теста, очевидна польза visible (освобождение памяти) параметра, удаление из Display List’а спасает лишь в случаи с анимацией (хотя и это было так же интересно, будет ли какая то нагрузка, если объекта нет в дисплей листе).

Смотреть в действии

P.S.
Тот кто угадает что изображено в исходном элементе используемом для построения вектора, получит плюшку.

10/03/2009

Reflect ver.2.0 – Extra Mirror

Опубликовано в: Эксперименты — Тэги: , — Nicolas Prof @ 18:35

После работы с классом отражения от AFComponents, стало очевидно чего не хватает в отличном отражении. Что мне понравилось в AFComponents варианте: отражение наследуется от спрайта, что дает пользователю возможность контролировать получаемый результат. Не понравилось, подход к созданию отражения, ну и реализация. Так же на практике, дизайнеры очень хотят видеть размытое отражение, что тоже необходимо учитывать.

В итоге вышел следующий инструмент:

  • Reflect наследуется от Sprite;
  • объект для отражения, может иметь различные модификаторы трансформации, scale, skew, rotate, так же совершенно не важно где находится registration point;
  • добавлен метод applyFilter, позволяет применять массив фильтров к Bitmap отражения;
  • добавлен class ReflectVars;

Специально для демо выбрал героя by TemplateMonster, который был увеличен (ScaleX, ScaleY), а так же двигается вне стартовых значений габаритов Movieclip

Download – Reflect ver. 2.0
Смотреть в действии

Mobile Wallpapers – Flash Themes

Опубликовано в: Дизайн — Тэги: , , — Nicolas Prof @ 10:57

Хочу поделиться своими обоями, которые я сделал уже ой как давно, для своего Samsung DUOS. Размер изображений 240 на 320. Пользуйтесь на здоровье.

Wallpaper 1
Wallpaper 2
Wallpaper 3
Wallpaper 4
Wallpaper 5
Wallpaper 6

this.nextFrame ()this.prevFrame ()
 

Меню:
Twitter Updates:
    Архив:
    Управление:
    Flash & Flex знакомые: