Двоичный (бинарный) поиск C#-like

В работе над проектом одной из игр, мне пришлось работать с алгоритмами упаковки прямоугольников (задача о ранце) для составления атласа спрайта графики.

В одном из алгоритмов (реализация которого была написана на C#) использовался двоичный поиск. Стандартными средствами AS3 было не обойтись, к тому же бинарный поиск в C# в случае отсутствия искомого элемента возвращает отрицательное число, являющееся побитовым дополнением индекса наиболее близкого к искомому элементу (наиболее близкое всегда больше искомого), а если и такой элемент не найден, то возвращается отрицательное число, являющееся побитовым дополнением длины массива.

Двоичный (бинарный) поиск (также известен как метод деления пополам и дихотомия) — классический алгоритм поиска элемента в отсортированном массиве (векторе), использующий дробление массива на половины. Используется в информатике, вычислительной математике и математическом программировании.

Источник: Двоичный (бинарный) поиск
Read More…

Фильтрация XML (E4X) при помощи регулярных выражений и сложных условий

Заметка в качестве продолжения темы о получении данных из XML.

Для фильтрации XML можно так же использовать регулярные выражения (RegExp) и собственные условия через функции фильтрации (помимо простых сравнений).
Не уверен, что данный синтаксис скушает любая среда разработки (по крайней мере FDT выдает ошибку, хотя синтаксис правильный).

Простой пример. У нас имеется список персонала одного из отделов компании, и нам необходимо узнать, кто из них родился в апреле.
Read More…

Вопрос: приложения для Facebook

Назрела статья о работе с фейсбуком, так как материала на русском достаточно мало, понятного и того меньше.
Статья будет описывать всё от создания приложения в девелоперском разделе, до подключения с помощью PHP и работы с GraphAPI посредством AS3.

Ну и суть вопроса: кому-нибудь эта статья вообще нужна?

Релиз CASALib 1.4.0

Запись для «слоупоков» вроде меня.
17 июня вышел «свежий» релиз замечательной библиотеки под названием CASALib, что содержит достаточное количество, необходимых для работы разработчиков, классов, которые существенно облегчают разработку.

Из основных особенностей хочу выделить:

  1. Класс ListenerManager, что позволяет быстро и просто добавить к любому классу наследуемому от EventDispatcher возможности удаления всех слушателей, удаления слушателей для определенно типа события, и т.д.
  2. Удобные классы загрузки любых данных
  3. Готовые шаблоны для создания классов с деструкторами
  4. Классы дисплей-объектов (CasaSprite, CasaMovieClip), в функционал которых вложены функции удаления всех детей, из уничтожения (+ чудесная плюшка – рекурсивное удаление и деструкция)

В целом крайне полезная библиотека, на её основе собственно базируется всё, что я пишу.

Posted in Записки at Сентябрь 6, 2011. Комментариев нет.

Получение данных из XML (E4X)

Как показывает практика, далеко не все знают об использовании оператора «..» и фильтрации при работе с XML. Для этого существуют очень удобные средства E4X (ECMAScript for XML)

Оператор «..»

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

На примере:
У нас есть категоризованный список продуктов:

Нам необходимо получить полностью все продукты вне зависимости от их категории:

На выходе получим:

Read More…

Posted in Flash, Actionscript 3 at Сентябрь 6, 2011. Комментариев нет.

Сброс letterSpacing при изменении текста

Столкнулся с багом когда при изменении текста у текстового поля, сбрасывается установленный letterSpacing.
Лечение:

Не особо красивое решение, но и баг не красавец.

Posted in Flash, Actionscript 3 at Июль 4, 2011. 2 комментария.

Быстрое внедрение шрифтов [Embed]

Уже ни раз писалось о встраивании шрифтов, поэтому я не буду описывать весь процесс а покажу лишь простой и удобный прием на примере кода.

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

Конечно не стоит забывать о использовании textField.embedFonts.

Так же вы можете скомпилировать этот asset как отдельный swf и свободно подгружать его при необходимости.

Метод позаимствован (а потом модифицирован) у Font Library Creator’a среды разработки Powerflasher FDT.

Posted in Flash, Actionscript 3 at Март 31, 2011. 2 комментария.

Утечки памяти и их устранение

Запись была переработана и обновлена.

1. Введение

Многие начинающие флэшеры, как и я в свое время, не имеют представления об освобождении памяти от использованных, либо недооценивают данный раздел программирования.
В ходе разработки приложений объекты, которые были использованы и более не являются необходимыми в большинстве случаев остаются в памяти, если не позаботиться об их уничтожении. Оставаясь в памяти «мусор» может вызвать проблемы с производительностью, что для конечного пользователя не окажется радостным событием.
В данной статье раскрываются методы очистки памяти от «мусора».

Read More…

Официальное руководство по оптимизации приложений

Adobe любезно предоставили русскоязычное руководство по оптимизации приложений, в котором описано большое количество приемов оптимизации, включая новейшие фичи плеера.

Полезно будет почитать не только новичку, но и профессионалу.

Pixel Bender 3D

Сегодня Kevin Goldsmith (глава команды разрабатывающей: Pixel Bender, технологии обработки изображений и работы с GPU для продуктов Adobe) в своем блоге опубликовал запись о том, что они готовят новый продукт «Pixel Bender 3D» для нового 3D API «Molehill» флэш-плеера.
Read More…

Posted in Flash, Actionscript 3 at Октябрь 27, 2010. Комментариев нет.