и на горячее...
Спецвыпуск: Хакер, номер #073, стр. 073-040-2 ActionScript 3 выполняется на новой виртуальной машине ActionScript Virtual Machine 2, встроенной в Flash Player 9, производительность которой в среднем в 10 раз выше, чем производительность AVM1 + AS2. [обработка ошибок «на лету» (runtime exceptions).] Существует мнение, что при работе с ActionScript 2 на поиск и исправление неявных ошибок уходит до 80% всего затраченного на работу времени. Дело в том, что компиляторы ActionScript 2 проверяют синтаксис кода только при компиляции swf-файла. Все неявные ошибки (например, отсутствие инициализации объекта класса), возникающие во время работы, если не приводят к зависанию, проходят тихо и незаметно. Теперь в ActionScript 3 добавлены механизмы для обработки исключений, что позволит обрабатывать возможные ошибки «на лету». Предоставляемая отладочная информация содержит информацию о стеке вызовов, исходном коде и номере строки с ошибкой. [строгие типы данных (runtime types).] Строгая (обязательная) типизация данных – одна из основных причин, по которой разработчикам удалось значительно ускорить выполнение ActionScript 3. Пожертвовав неопределенностью типа переменной, разработчики выиграли время и память. А проверка соответствия типа «на лету» добавила еще один уровень надежности работы кода. [упрощенная схема создания обработчиков событий (method closures).] В ActionScript 3 реализована упрощенная модель объявления обработчика событий. Так в ActionScript 2 обработчик начисто «забывал» свой объект. Для решения этой проблемы приходилось использовать разнообразные громоздкие конструкции. Теперь строки myButton.addEventListener("click", someMethod); достаточно для того, чтобы объявить реакцию объекта на событие. Функция-обработчик автоматически запомнит ссылку на экземпляр своего объекта. Поддержка Е4X стандарта для работы с XML (ECMAScript for XML (E4X)). ActionScript 3 содержит полную реализацию стандарта E4X. Этот стандарт был разработан специально для того, чтобы упростить работу с XML-структурами. XML в этом стандарте представлен, как native data: //Создаем XML-структуру var myXML:XML = <order> <item id='1'> <menuName>burger</menuName> <price>3.95</price> </item> <item id='2'> <menuName>fries</menuName> <price>1.45</price> </item> </order> // Обращаемся к элементам trace(myXML.item[0].menuName); // Output: burger trace(myXML.item.(@id==2).menuName); // Output: fries trace(myXML.item.(menuName=="burger").price); // Output: 3.95 Эта нотация значительно сокращает объем управляющего кода, а встроенная реализация стандарта существенно ускоряет работу парсера XML. [поддержка регулярных выражений (regular expressions).] Поддержка регулярных выражений (по спецификации ECMA-262) на уровне ядра позволит быстро осуществлять сложный поиск в больших массивах текста. [пространства имен (namespaces).] В ActionScript 3 реализован инновационный механизм определения и управления пространством имен. Теперь можно создавать произвольные пространства имен, например традиционные спецификаторы доступа, используемые для управления видимостью объявлений public, private, protected, – что дает возможность управлять полями видимости и избегать коллизий при работе с E4X. |