Иногда возникает необходимость отсортировать некоторый массив объектов сразу по нескольким полям. Например, есть список пользователей. Каждый из них в текущий момент может быть в онлайне. Наша задача - отсортировать список таким образом, чтобы сначала показывались по алфавиту пользователи в онлайне, а за ними - те, кто в оффлайне. Читать далее...
Java сильно влияет на ActionScript разработчиков. Сегодня я попробую эмулировать тип данных enum из Java.
Например вот так:
package {
public class Fruit {
public static const Apple:Fruit=new Fruit(0);
public static const Pear:Fruit=new Fruit(1);
public static const Peach:Fruit=new Fruit(2);
private var _value:int;
public function Fruit(value:int) {
_value=value;
}
public function get value():int {
return _value;
}
}
}
этот вариант «более правильный и изящный с точки зрения архитектуры», однако я почему то предпочитаю вариант попроще -«некрасиво и убого, не нужно так писать»:
package {
public class Vegetable {
public static const Tomato:int=0;
public static const Onions:int=1;
public static const Cucumber:int=2;
}
}
К тому-же он работает в два с лишним раза быстрее. Но придется все таки изучать правильные и архитектурно изящные варианты. От этого зависит буду я хорошим программистом или говнокодером...
Как всегда буду краток. Для сортировки можно использовать следующий механизм:
public var faces:Array; . . .
public function ReorderChildren()
{
for(var i:uint = 0; i < 6; i++)
{
faces[i].z = faces[i].child.transform.getRelativeMatrix3D(root).position.z;
this.removeChild(faces[i].child);
}
faces.sortOn("z", Array.NUMERIC | Array.DESCENDING);
for (i = 0; i < 6; i++)
{
this.addChild(faces[i].child);
}
}
Для ознакомления с другими возможностями Flash Player 10 читайте Help
Помимо прочих креативных изменений, Flash Player 10 включает в себя несколько полезных дополнений, которые были так необходимы разработчикам и появились благодаря их усилиям.
unloadAndStop
Наконец то внешний контент можно без головной боли загружать и выгружать, так же как в старом добром ActionScript 2.0. Применив unloadAndStop к загруженному контенту (например, загруженный SWF файл), Вы тем самым останавливаете все аудио-потоки, удаляете все eventListener-ы и передаете все мусорщику. Подробнее здесь.
Ограниченный доступ к клавиатуре в полноэкранном режиме
В Flash Player 10 имеется доступ к "непечатным" клавишам. Таким как стрелки, Пробел, Shift, Tab и так далее. Раньше, как известно, в полноэкранном режиме клавиши, кроме Esc, не работали.
Доступ к файловой системе
Теперь пользователь СМОЖЕТ загрузить файл из локальной файловой системы, обработать его и сохранить результат обратно на диск. Теперь можно будет обходиться без загрузки файла на сервер и обратно для работы с внешними файлами. Это радует.
Поддержка "крупнокалиберной" графики
Имеется в виду БИТМАПЫ большого размера, до 16`777`216 пикселей (4`096 × 4`096) с максимальным размером одной стороны, равным 8`191 пикселей.
Наконец-то мы дождались документа "Flex SDK coding conventions and best practices" от Адоба. Документ носит рекомендательный характер, однако позволит разработчикам иметь общие точки соприкосновения в вопросах читабельности кода. Было бы вообще шикарно, если бы Адоб подарил нам автоформатилку для Flex, в этом я абсолютно согласен с Ильей.
С помощью FDT 3.0 Enterprise Вы можете производить отладку Ваших исходников с помощью мощного отладчика, который поддерживает точки останова (breakpoints) и анализировать код шаг-за-шагом.
Еще одна крутая фишка - продвинутая система рефакторинга. Рефакторинг в FDT реализован намного сильнее чем во Flex. Не верите - попробуйте сами.
Небольшие изменения для управления альфа-каналом пришлось сделать в классе View3D. Попробуйте сами его "доработать лобзиком" 🙂 Ну а нетерпеливые могут скачать архив.