Перейти к тексту

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

При первом входе в developerWorks для Вас будет создан профиль. Выберите информацию отображаемую в Вашем профиле — скрыть или отобразить поля можно в любой момент.

Вся введенная информация защищена.

  • Закрыть [x]

При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

Вся введенная информация защищена.

  • Закрыть [x]

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

Разработка сценариев и приложений с помощью Adobe Flash Player Runtime нового поколения и Tamarin от Mozilla - проекта с открытым исходным кодом.

Анита Рамасвами, системный программист, IBM India
Анита Рамасвами (Anitha Ramaswamy) - инженер-программист в группе WebSphere Business Integration Adapters при лаборатории IBM India Software Labs в Бангалоре. Её специализация - технологии Java™ и Java 2 Enterprise Edition (J2EE™). Три года Анита занималась OS/2® Presentation Manager. Она также работала над проектом с открытым исходным кодом Tuscany Project и проектом по разработке инсталлятора RFIDIC 1.0 в группе EPCIS при лаборатории India Software Labs. Имеет степень бакалавра по электронике и связи, полученную в Технологическом Университете Вишвесварайя в Бангалоре. Связаться с Анитой можно по адресу aramaswa@in.ibm.com.

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

Дата:  05.10.2007
Уровень сложности:  средний
Активность:  6383 просмотров
Комментарии:  


История

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 Runtime, создают YouTube, Flickr, SWiSH, ScreenTime и многие другие продукты и ресурсы. Все они используют ActionScript для реализации интерактивности и организации поведения выводимого контента. Профессиональные дизайнеры и разработчики могут использовать ActionScript в рамках ряда инструментов и серверов из семейства продуктов Adobe, таких как Flash, Flex и Flash Media Server, для создания программ, предназначенных для Flash Player Runtime. Семейство продуктов Flex, в том числе новая, основанная на Eclipse среда разработки Flex Builder 2, станет первой линейкой продуктов, в которой будут использоваться новые возможности ActionScript 3.0.


Обзор

Начав с основных свойств ActionScript 3, я расскажу о целях, возможностях языка и возможностях Flash Player API. Я также рассмотрю новые и незаслуженно незамеченные возможности ActionScript 3. В ходе конференции WEB2.0, проходившей 7 ноября 2006 года в Сан-Франциско, Adobe Systems заявила о передаче исходных текстов виртуальной машины ActionScript организации Mozilla Foundation. Mozilla будет вести новый проект с открытым исходным кодом под названием Tamarin, цель которого - ускорить выработку основанного на стандартах подхода к созданию насыщенных и привлекательных Web-приложений.

Функциональные возможности 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, но уже определила некоторые технические цели:

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

Простой пример использования ActionScript 3

Этот пример, написанный на ActionScript, выводит приветственное сообщение "Hello <Username>". Пользователь может ввести своё имя в имеющееся поле ввода текста. Когда он нажмёт Enter, на экране появится приветственное сообщение.


Листинг 1. Пример кода
                	
package {
	
	public class Greeter {

	/**
	 * Определяет имена, которые должны получить
 соответствующее приветствие.
	 */
		public static var validNames:Array =
 ["Sammy", "Frank", "Dean"];
		
		/**
		 * Создаёт строку приветствия с 
использованием заданного имени 
		 */
		
		public static function sayHello 
(userName:String = ""):String {
			var greeting:String = "Hello World";
		 	
			if (userName == ""){
				greeting = "Hello, please type your
 name and then press the enter key";
			}
			else if(validName(userName)){
				greeting = "Hello, " + userName + ".";
			}
			else {
				greeting = "Sorry, " + userName + 
"Your name is not present in the list.";
			}
			return greeting;
		}
		
		/**
		 * Проверяем, входит ли 
имя в список validNames 
		 */
		
		public static function
 validName(inputName:String = ""):Boolean {
			if validNames.indexOf(inputName) > -1 {
				return true;
			}
			else {
				return false;
		}
}

	}
}


На рисунке 1 показано первое окно, создаваемое Листингом 1. В нем выводится первоначальное приветствие "Hello, please type your name and then press the enter key" (Здравствуйте, введите свое имя и нажмите клавишу ввода) и ждёт, когда пользователь введёт данные в текстовое поле под названием User Name.


Рисунок 1. Пример приветствия в ActionScript 3
Пример приветствия в ActionScript 3

Когда пользователь вводит имя "Frank" в поле User Name (имя пользователя), скрипт ищет имя в заданном заранее массиве validNames. Поскольку имя "Frank" имеется в массиве validNames, в поле для приветствия появляется "Hello Frank", как показано на Рисунке 2.


Рисунок 2. Пользователь вводит имя
Пользователь вводит имя

Если пользователь вводит имя, отсутствующее в массиве validNames, например, User Name = "Anitha", тогда появится сообщение "Sorry, Anitha, your name is not present in the list" (Извините, Анита, вашего имени нет в списке).

Ниже приведен список отличных ресурсов для изучения вопросов, связанных с программированием на ActionScript. Также имеется ссылка на дискуссионный форум, где другие разработчики, работающие на ActionScript, смогут моментально дать вам ответы на любые вопросы. В новой виртуальной машине ActionScript и вообще в новом Flash Player имеется много других увлекательных изменений, выходящих за рамки данной статьи. Если вы ещё не сделали этого, загрузите самую новую версию Flash Player и воспользуйтесь ее многочисленными преимуществами.


Ресурсы

Научиться

Получить продукты и технологии

  • Загрузите Flash Player 9.(EN)

  • Загрузите Flex 2 Builder для программирования на ActionScript 3.0 и MXML.(EN)

Обсудить

Об авторе

Анита Рамасвами (Anitha Ramaswamy) - инженер-программист в группе WebSphere Business Integration Adapters при лаборатории IBM India Software Labs в Бангалоре. Её специализация - технологии Java™ и Java 2 Enterprise Edition (J2EE™). Три года Анита занималась OS/2® Presentation Manager. Она также работала над проектом с открытым исходным кодом Tuscany Project и проектом по разработке инсталлятора RFIDIC 1.0 в группе EPCIS при лаборатории India Software Labs. Имеет степень бакалавра по электронике и связи, полученную в Технологическом Университете Вишвесварайя в Бангалоре. Связаться с Анитой можно по адресу aramaswa@in.ibm.com.

Помощь по сообщениям о нарушениях

Сообщение о нарушениях

Спасибо. Эта запись была помечена для модератора.


Помощь по сообщениям о нарушениях

Сообщение о нарушениях

Сообщение о нарушении не было отправлено. Попробуйте, пожалуйста, позже.


developerWorks: вход


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


При первом входе в developerWorks для Вас будет создан профиль. Выберите информацию отображаемую в Вашем профиле — скрыть или отобразить поля можно в любой момент.

Выберите ваше отображаемое имя

При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

(Должно содержать от 3 до 31 символа.)


Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Оценить эту статью

Комментарии

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Open source
ArticleID=259849
ArticleTitle=Свет, камера, ActionScript 3.0!
publish-date=10052007
author1-email=aramaswa@in.ibm.com
author1-email-cc=

Теги

Help
Используйте форму поиска, чтобы найти любой контент с данным тегом в My developerWorks. Используйте ползунок, чтобы отразить больше или меньше тегов.

КнопкаПопулярные теги отображает самые распространенные теги для данной области контента (например: Java, Linux, WebSphere).

Кнопка Мои теги отображает Ваши теги для данной области контента (например: Java, Linux, WebSphere).

Используйте форму поиска, чтобы найти любой контент с данным тегом в My developerWorks. Кнопка Популярные теги отображает самые распространенные теги для данной области контента (например: Java, Linux, WebSphere). Кнопка Мои теги отображает Ваши теги для данной области контента (например: Java, Linux, WebSphere).