Назрела статья о работе с фейсбуком, так как материала на русском достаточно мало, понятного и того меньше.
Статья будет описывать всё от создания приложения в девелоперском разделе, до подключения с помощью PHP и работы с GraphAPI посредством AS3.
Ну и суть вопроса: кому-нибудь эта статья вообще нужна?
Запись для «слоупоков» вроде меня.
17 июня вышел «свежий» релиз замечательной библиотеки под названием CASALib, что содержит достаточное количество, необходимых для работы разработчиков, классов, которые существенно облегчают разработку.
Из основных особенностей хочу выделить:
- Класс ListenerManager, что позволяет быстро и просто добавить к любому классу наследуемому от EventDispatcher возможности удаления всех слушателей, удаления слушателей для определенно типа события, и т.д.
- Удобные классы загрузки любых данных
- Готовые шаблоны для создания классов с деструкторами
- Классы дисплей-объектов (CasaSprite, CasaMovieClip), в функционал которых вложены функции удаления всех детей, из уничтожения (+ чудесная плюшка — рекурсивное удаление и деструкция)
В целом крайне полезная библиотека, на её основе собственно базируется всё, что я пишу.
Posted in
Записки at Сентябрь 6, 2011.
Комментариев нет.
Как показывает практика, далеко не все знают об использовании оператора «..» и фильтрации при работе с XML. Для этого существуют очень удобные средства E4X (ECMAScript for XML)
Оператор «..»
Данный оператор позволяет получать данные потомков дерева XML вне зависимости от глубины их нахождения.
На примере:
У нас есть категоризованный список продуктов:
<food>
<vegetables>
<item caloric="2" isDietic="true">tomato</item>
<item caloric="40" isDietic="false">potato</item>
</vegetables>
<fruits>
<item caloric="4" isDietic="true">orange</item>
<item caloric="26" isDietic="false">apple</item>
</fruits>
</food>
Нам необходимо получить полностью все продукты вне зависимости от их категории:
var foodItems : XMLList = xml..item;
for each (var item : XML in foodItems) {
trace(item.toString());
}
На выходе получим:
tomato
potato
orange
apple
Read More…
Столкнулся с багом когда при изменении текста у текстового поля, сбрасывается установленный letterSpacing.
Лечение:
var textFormat : TextFormat = textField.getTextFormat();
textField.text = "New text";
textField.setTextFormat(textFormat);
Не особо красивое решение, но и баг не красавец.
Уже ни раз писалось о встраивании шрифтов, поэтому я не буду описывать весь процесс а покажу лишь простой и удобный прием на примере кода.
package assets {
import flash.display.Sprite;
import flash.system.Security;
import flash.text.Font;
import flash.utils.describeType;
public class FontsAsset extends Sprite {
[Embed(source="../../../res/fonts/MyriadPro-Semibold.otf", mimeType="application/x-font-truetype", fontName="MyriadSemibold", unicodeRange="U+0020-U+002F,U+0030-U+0039,U+003A-U+0040,U+0041-U+005A,U+005B-U+0060,U+0061-U+007A,U+007B-U+007E,U+02C6,U+02DC,U+2013-U+2014,U+2018-U+201A,U+201C-U+201E,U+2020-U+2022,U+2026,U+2030,U+2039-U+203A,U+20AC,U+2122,U+0401,U+0410-U+044F", embedAsCFF="false")]
// Uppercase [A..Z] ; Lowercase [a..z] ; Numerals [0..9] ; Punctuation [!@#%...] ; Basic Latin ; chars="АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя"
public static var MyriadSemibold : Class;
[Embed(source="../../../res/fonts/MyriadPro-Regular.otf", mimeType="application/x-font-truetype", fontName="MyriadRegular", unicodeRange="U+0020-U+002F,U+0030-U+0039,U+003A-U+0040,U+0041-U+005A,U+005B-U+0060,U+0061-U+007A,U+007B-U+007E,U+02C6,U+02DC,U+2013-U+2014,U+2018-U+201A,U+201C-U+201E,U+2020-U+2022,U+2026,U+2030,U+2039-U+203A,U+20AC,U+2122,U+0401,U+0410-U+044F", embedAsCFF="false")]
// Uppercase [A..Z] ; Lowercase [a..z] ; Numerals [0..9] ; Punctuation [!@#%...] ; Basic Latin ; chars="АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя"
public static var MyriadRegular : Class;
public function FontsAsset() {
Security.allowDomain("*");
var xml : XML = describeType(this);
for (var i : uint = 0; i < XMLList(xml["variable"]).length(); i++) {
Font.registerFont(this[XMLList(xml["variable"])[i].@name]);
}
}
}
}
Собственно встроить шрифтов можно сколько угодно, в коде ничего менять не придется кроме добавления строк описывающих само встраивание.
Чтобы шрифты отображались в самом приложении достаточно будет в конструкторе создать новый экземпляр FontsAsset.
Конечно не стоит забывать о использовании textField.embedFonts.
Так же вы можете скомпилировать этот asset как отдельный swf и свободно подгружать его при необходимости.
Метод позаимствован (а потом модифицирован) у Font Library Creator’a среды разработки Powerflasher FDT.
Запись была переработана и обновлена.
1. Введение
Многие начинающие флэшеры, как и я в свое время, не имеют представления об освобождении памяти от использованных, либо недооценивают данный раздел программирования.
В ходе разработки приложений объекты, которые были использованы и более не являются необходимыми в большинстве случаев остаются в памяти, если не позаботиться об их уничтожении. Оставаясь в памяти «мусор» может вызвать проблемы с производительностью, что для конечного пользователя не окажется радостным событием.
В данной статье раскрываются методы очистки памяти от «мусора».
Read More…
Adobe любезно предоставили русскоязычное руководство по оптимизации приложений, в котором описано большое количество приемов оптимизации, включая новейшие фичи плеера.
Полезно будет почитать не только новичку, но и профессионалу.
Сегодня Kevin Goldsmith (глава команды разрабатывающей: Pixel Bender, технологии обработки изображений и работы с GPU для продуктов Adobe) в своем блоге опубликовал запись о том, что они готовят новый продукт «Pixel Bender 3D» для нового 3D API «Molehill» флэш-плеера.
Read More…
На Adobe MAX 2010 был продемонстрирован ролик, где был показан результат использования технологии «Molehill» — дословно «низкоуровневого, использующего GPU (графический процессор), 3D API для платформы Adobe Flash». Ролик представляет собой видео с «игры» «MAX Racer», мы видим и динамическое освещение, и отражения, и какую-никакую физику, и вся эта красота рендерится на 60 FPS не загружая процессор совершенно. Стоит отметить, что приложение написано с использованием нового движка Alternativa 3D 8 (пока еще разрабатываемого), ориентированного на новую версию Flash player’a (Alternativa Platform сотрудничает с Adobe).
Технология работает на Linux и Mac через OpenGL, а в Windows используя DirectX, так, что это будет бомба, которая оставит далеко позади WebGL и Html5.
Но «бомба» взорвется лишь в следующем году, и до этого момента нам остается лишь читать блог адоба и нервно пересматривать ролики.
Кстати вот здесь первый а здесь и второй
Пугают только размеры будущих возможных игр.
Буквально вчера наткнулся на очень полезный инструмент от Adobe — FlexPMD.
Данный инструмент позволяет отслеживать качества кода, на выходе получаем список слабых мест в коде. В основном это:
* Неиспользуемый код (функции, переменные, константы, и т.д.)
* Неэффективный код (злоупотребление динамическими фильтрами, тяжелые конструкторы и т.д.)
* Неоправданно сложный код (вложенные циклы, большое кол-во условий, и т.д.)
* Слишком длинный код (для классов, методов и т.д.)
* Некорректное использование жизненного цикла Flex-компонентов (например commitProperties)
Инструмент можно прикрутить как угодно, к ant’у, maven’у, как плагин для эклипса, можно работать из командной строки.
Выбор удобств за вами.
Read More…