My First ActionScript 3 Application » Свет, камера, ActionScript 3.0!
Главная > Основы, Слово Редактора > Свет, камера, ActionScript 3.0!

Свет, камера, ActionScript 3.0!

Проанализировав свои предыдущие публикации я понял, что как то не с того начал. Может быть стоило рассказать о языке с самого начала? Но, лучше поздно, чем... очень поздно 🙂

В целях знакомства приведу выдержки из публикации Аниты Рамасвами

Что же такое ActionScript?

ActionScript 3.0 - это объектно-ориентированный язык программирования, обладающий большими возможностями и знаменующий собой важный шаг в эволюции Flash Player Runtime.

История

ActionScript - это язык программирования, основанный на ECMAScript и используемый для написания сценариев кинофрагментов и приложений на Adobe Flash. Впервые ActionScript 1.0 (его полностью программируемая версия) появился в составе Flash 5. Во Flash 6 было добавлено несколько встроенных функций, а также появилась возможность осуществлять более эффективное программное управление анимированными элементами. Во Flash 7 был введен ActionScript 2.0, который был строго типизирован и предоставлял возможности программирования, связанные с использованием классов, такие как наследование, интерфейсы и строгая типизация данных. Flash 8 еще больше расширил ActionScript 2, добавив к нему новые библиотеки классов, включающие в себя API для работы с растровыми изображениями на каждом шаге выполнения, а также загрузку файлов. ActionScript исполняется встроенной во Flash Player виртуальной машиной ActionScript Virtual Machine (AVM1). Версия Flash 9, поставляемая с ActionScript 3,включает новую виртуальную машину ActionScript Virtual Machine (AVM2), обеспечивающую существенный прирост производительности.

Ранние версии ActionScript (ActionScript 1.0 и 2.0) предоставляли мощь и гибкость, необходимые для создания насыщенных Web-приложений. ActionScript 3 раскрывает еще более широкий диапазон возможностей для приложений, основанных на Web. Дополнительные усовершенствования языка в новой версии обеспечивают отличную производительность и облегчают процесс разработки. Это позволяет создавать весьма сложные Web-приложения и работать с большими массивами данных. ActionScript 3 помогает достичь высокой эффективности и производительности при работе с контентом и приложениями, предназначенными для Flash Player.

ActionScript 3 соответствует третьей редакции спецификации ECMAScript (ECMAScript Language Specification, Third Edition). Кроме того, он содержит функциональные средства, основанные на четвёртой редакции ECMAScript, такие как классы, пакеты и пространства имён; возможность использования статических типов; генераторы и итераторы, а также деструктурирующие присваивания. По мере того, как увеличивалась потребность проектов в насыщенных, высокопроизводительных Web-приложениях, росла и необходимость в качественном скачке исполняющего ядра ActionScript. ActionScript 3 предлагает новую хорошо оптимизированную виртуальную машину - ActionScript Virtual Machine (AVM2), которая значительно превосходит по производительности AVM1. Благодаря этому программы на ActionScript 3 выполняются почти в 10 раз быстрее, чем старые программы на ActionScript. Новый движок AVM2 для языка ActionScript 3.0, появившийся во Flash Player 9, призван удовлетворить потребности разработчиков насыщенных Интернет-приложений к производительности и функциональным возможностям. Планируется, что Flash Player будет сохранять поддержку старой AVM1 для совместимости с существующим и унаследованным контентом.

Обзор

Начав с основных свойств ActionScript 3, заострим внимание на целях, возможностях языка и возможностях Flash Player API. Функциональные возможности ActionScript 3 можно разделить на две группы: возможности языка и возможности Flash Player API. Возможности языка в основном базируются на ActionScript 2, но имеется и ряд улучшений производительности и функциональности:

  • Множество программируемых исключений времени исполнения, позволяющих улучшить стандартные возможности обработки ошибок и отладки. Эти исключения времени исполнения отображают трассировку состояния стека, облегчая выяснение причин ошибки. Предыдущие версии ActionScript молча проглатывали ошибку, чтобы диалоговые окна сообщений об ошибке не появлялись во Flash. Это вызывало сложности на этапе разработки, так как разработчики не узнавали обо всех возможных ошибках, что мешало созданию хорошего продукта.
  • Данные о типах сохраняются во время выполнения для проверки и обеспечения защиты системы, что делает ActionScript 3 языком со строгим контролем типов. Одновременно это позволяет уменьшить используемую память, поскольку информация о типах представляет переменные в естественном машинном представлении.
  • ActionScript 3 полностью соответствует четвёртой редакции спецификации ECMAScript (ECMAScript, Fourth Edition), что облегчает анализ XML.

Возможности Flash Player API в ActionScript 3 включают:

  • Модель событий DOM3 предоставляет стандартный способ генерирования и обработки событий, который способствует лучшей взаимосвязи и взаимодействию между объектами.
  • Новый класс Loader предоставляет единый механизм для загрузки файлов Shockwave Flash и графических ресурсов и даёт доступ к детальной информации о загруженном контенте. Класс URLLoader предоставляет раздельный механизм для загрузки текстовых и двоичных данных в приложения, управляемые данными.
  • Класс Socket предоставляет средства для чтения и записи двоичных данных в сокеты сервера в любом формате.
  • ActionScript 3.0 содержит пакет flash.text для всех API, связанных с текстом.

Ниже перечислены другие новые возможности.

Loader.loadBytes()

Данный метод позволяет создавать объекты из двоичных данных непосредственно в списке отображения. Например, если сообщение, загруженное моим клиентом электронной почты с POP3-сервера, содержит вложение, я проверяю тип mime этого вложения. Если данный тип поддерживается плеером, то я могу считать двоичный код этого вложения в массив ByteArray и показать вложение во Flash Player. Это означает, что мой почтовый клиент может показать вложения типов PNG, JPEG, GIF и SWF.

Sound.computeSpectrum()

Данный метод анализирует весь воспроизведённый звук и возвращает массив ByteArray, содержащий 512 нормализованных значений (от -1 до 1), которые можно использовать для графического отображения формы звуковой волны (256 значений для левого канала и 256 значений для правого). Эти значения можно использовать для создания эквалайзеров звука для медиаплееров, а также для экспериментальных программ, реагирующих на воспроизводимый звук и отображающих эту реакцию визуально.

BitmapData.getPixels()

Данный метод возвращает массив ByteArray, содержащий шестнадцатеричные значения цвета для каждого пиксела в заданной прямоугольной области изображения. Метод можно использовать совместно с новым методом сжатия ByteArray.compress() для сжатия и отправки изображения по сети на сервер, конвертируя его в загружаемый файл.

Loader.close()

Теперь можно прерывать загрузку плеером внешних медиаданных. В прошлом, загружая изображения в плеер, вы не могли прервать этот процесс, пока он не завершится. Теперь такая возможность появилась.

Преимущества ActionScript 3

А вот список достоинств новой версии:

  • Язык поддерживает безопасность типов и облегчает сопровождение кода.
  • Язык относительно прост и упрощает написание программ по сравнению с другими языками.
  • Разработчики могут писать эффективные, быстро приспосабливающиеся к изменениям обстановки программы с высокой производительностью.
  • Язык имеет как прямую, так и обратную совместимость. Он совместим как с ActionScript 2, так и с ECMAScript для XML (E4X).

Глядя в будущее с Tamarin

7 ноября 2006 года Adobe Systems заявила о передаче программного кода виртуальной машины ActionScript организации Mozilla Foundation. Соответственно Mozilla открыла новый проект с открытым исходным кодом под названием Tamarin. Adobe и Mozilla надеются таким образом ускорить утверждение стандартного языка для создания привлекательных Web-приложений.

Цели Tamarin

Цель проекта Tamarin - осуществить высокопроизводительную реализацию с открытым исходным кодом для четвёртой редакции спецификации языка ECMAScript (ECMAScript, Fourth Edition - ES4). Mozilla собирается использовать виртуальную машину Tamarin в SpiderMonkey - собственной реализации ядра JavaScript-машины, встроенной в Firefox и другие продукты на основе Mozilla. Adobe планирует продолжить использование этого кода как части виртуальной машины ActionScript в составе Adobe Flash Player.

В настоящее время в виртуальной машине Tamarin реализована третья редакция стандарта языка ECMAScript, на которой основаны JavaScript, Adobe ActionScript и Microsoft Jscript, а также некоторые новые элементы языка, которые появятся в ES4. Работая совместно над реализацией открытого исходного кода ES4, Adobe и Mozilla надеются ускорить утверждение стандартного языка для создания привлекательных Web-приложений. Проект Tamarin имеет целью ускорить появление возможностей для создания и внедрения более насыщенных, более интерактивных интерфейсов, работающих на множестве различных платформ.

План развития Tamarin

Tamarin будет поддерживать будущий язык ECMAScript Edition 4 ("JavaScript 2") и будет интегрирован в SpiderMonkey в рамках проекта Mozilla 2, который планируется выпустить в 2008 году.

Команда Mozilla, работающая над проектами с открытым исходным кодом, ещё только приступает к работе над Tamarin, но уже определила некоторые технические цели:

  • Интеграция в SpiderMonkey виртуальной машины Tamarin и сборщика мусора
  • Использование компилятора SpiderMonkey для генерации программного кода Tamarin
  • Портирование JIT-компилятора на новые аппаратные платформы
  • Завершение разработки компилятора ECMAScript 4

материал взят с сайта IBM

  1. 9 октября 2007 в 00:54 | #1

    зачитался…
    🙂

  2. 9 октября 2007 в 01:02 | #2

    кстати. а пример который также приложен к оригинальной статье, Hello World ) написан по всем правилам, т.е. соотвествует соглашениям языка Java 🙂 (за что тебя «ругал» Constantiner)

    а вообще индусы рулят )

  3. 9 октября 2007 в 01:36 | #3

    У этой статьи, кстати, недавно появился официальный перевод:
    http://www.ibm.com/developerworks/ru/library/wa-actionscript/index.html?ca=drs-ru

  4. 9 октября 2007 в 02:52 | #4

    Костя, ссылка на нее с самого начала стоит внизу публикации

  5. 9 октября 2007 в 02:57 | #5

    кстати. а пример который также приложен к оригинальной статье, Hello World ) написан по всем правилам, т.е. соотвествует соглашениям языка Java (за что тебя “ругал” Constantiner)
    а вообще индусы рулят )

    да, да, да… по всем правилам.

    и пусть кто-нибудь, особенно новички попробуют этот листинг скомпилировать так, чтобы у них получилось то, что на скринах 😀 😀 😀

  6. Alex
    9 октября 2007 в 15:21 | #6

    Прочитал в первом прдложении «язык программирования …используемый для написания сценариев кинофрагментов» — и дальше читать не стал.

    кинофрагментов — это шедевр!

  7. 9 октября 2007 в 15:28 | #7

    Прочитал в первом прдложении “язык программирования …используемый для написания сценариев кинофрагментов” — и дальше читать не стал.
    кинофрагментов — это шедевр!

    Предложи свой перевод фразы «ActionScript is an ECMAScript-based programming language used for scripting Adobe Flash movies and applications.» в таком случае 🙂

  8. 10 октября 2007 в 19:27 | #8

    Костя, ссылка на нее с самого начала стоит внизу публикации

    Надо мне перепрошить себе моск. Я ссылку не заметил. Просто думал, что если IBM под ссылкой, то на морду и ведет, даже мышу не наводил. Кстати, рекомендую для понятности и для таких воинов упячки, как я, поместить ссылку не под «IBM», а под «с сайта IBM» или даже под «взят с сайта IBM» :))

  9. sertous
    31 января 2008 в 09:31 | #9

    Сабж.
    Есть тема неплохая: http://www.sape.ru — система конечно шикарная, помоему на мой взгляд самая лучшая из того, что есть на сегодняшний день..
    Но все таки одной маловато, может кто еще, что подскажет?

  1. Пока что нет уведомлений.