Сортировка массива объектов по нескольким полям

Иногда возникает необходимость отсортировать некоторый массив объектов сразу по нескольким полям. Например, есть список пользователей. Каждый из них в текущий момент может быть в онлайне. Наша задача - отсортировать список таким образом, чтобы сначала показывались по алфавиту пользователи в онлайне, а за ними - те, кто в оффлайне.

Эмуляция типа enum

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; […]

Использование Matrix3D для z-сортировки

Как всегда буду краток. Для сортировки можно использовать следующий механизм: 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); } } Для ознакомления с другими возможностями […]

Вкусности ActionScript 3.0 для Flash Player 10 API

Помимо прочих креативных изменений, Flash Player 10 включает в себя несколько полезных дополнений, которые были так необходимы разработчикам и появились благодаря их усилиям. unloadAndStop Наконец то внешний контент можно без головной боли загружать и выгружать, так же как в старом добром ActionScript 2.0. Применив unloadAndStop к загруженному контенту (например, загруженный SWF файл), Вы тем самым […]

FDT 3.1 beta доступна для скачивания

Вышла обновленная бета-версия популярного инструмента для разработки ActionScript приложений - FDT. В версии много вкусностей. Так что, качаем установочный файл. Также есть версия для яблочников.

Адобовские соглашения по кодированию. Дождались!

Наконец-то мы дождались документа "Flex SDK coding conventions and best practices" от Адоба. Документ носит рекомендательный характер, однако позволит разработчикам иметь общие точки соприкосновения в вопросах читабельности кода. Было бы вообще шикарно, если бы Адоб подарил нам автоформатилку для Flex, в этом я абсолютно согласен с Ильей.

FDT 3.0 Enterprise поступил в продажу

Ок, представляю вашему вниманию Enterprise-версию FDT 3.0 - популярной среды разработки ActionScript (Flash, Flex) приложений. С помощью FDT 3.0 Enterprise Вы можете производить отладку Ваших исходников с помощью мощного отладчика, который поддерживает точки останова (breakpoints) и анализировать код шаг-за-шагом. Еще одна крутая фишка - продвинутая система рефакторинга. Рефакторинг в FDT реализован намного сильнее чем во […]

Как повысить производительность AS3 приложений?

Андрей Горбатов написал отличную статью, помогающую повысить производительность вашего ActionScript 3 приложения. Честно говоря, для меня было откровением, что, например, при вычислении абсолютного значения конструкция i = x < 0 ? -x : x; работает на 250% быстрее чем i = Math.abs(x); Короче говоря, настоятельно рекомендую читать всем!

Книга “Learning ActionScript 3.0: A Beginner’s Guide” с исходником

Представляю Вашему вниманию книгу "Learning ActionScript 3.0: A Beginner's Guide", вышедшую в начале этого года. Книга хорошая сама по себе. Но любопытно еще и то, что авторы этой книги создали блог, где кроме исходных тестов, используемых в книге можно пройти небольшой тест на знание языка. Вот исходники по главам книги, доступные для скачивания: Chapter 3: […]

Оперирование визуализацией произвольных 3D поверхностей

В продолжение предыдущей публикации, я попробовал расширить наглядность примера. Для этого я создал новый 3D-объект, который представляет собой набор из 11 параметрических поверхностей (взято из туториала "A Demonstration of Customizable Features of Our 3D Surfaces") : Класс Surfaces: package lib3d { import lib3d.Object3D; /** * @author Michael */ public class Surfaces extends Object3D { private […]