Этот swf файл не содержит код actionscript
Как запустить окно - ActionScript 3.0 в Adobe Flash СS4
На моем ПК стоит программа Adobe Flash СS4, нужно изменить код скрипта, да вот не задача не могу найти "кнопку" включения - ActionScript 3.0.
Все просмотрел, по не одному разу, а отыскать как открыть окно для скрипта не могу - как на него выйти, где оно спрятано (что нажать) или версия CS4, что у меня стоит является обрезанной? Может такое быть в программе?
Но у меня русская версия стоит и этих слов в ней нет!
То есть, можно по Русски - пожалуйста.
Вы точно знаете, что окно со скриптами во всех версиях есть - так как не может отсутствовать?
Есть Английская версия - но ставить её. что бы потом куда попало тыкать (не зная ихнего языка) - чего то не хочется.
Спасибо!
Публикация -> Настройка -> Action Script версии -> (так гугл переводит)
нефига непонял смысла фразы
Есть Английская версия - но ставить её. что бы потом куда попало тыкать (не зная ихнего языка) - чего то не хочется.
Спасибо!
инглиш еще никому ненавредил, хотябы технический [/QUOTE]
- Да, это правда. Но нафиля его изучать (и мучиться в конвульсях) ежели Русские (русифицированные) программы есть. Так ставить англ. версию? Потому что настройки есть в Русской, а окно так и не выводится. Да?
Является необходимым в шаблоне изменить код скрипта (слегка его подкорректировать, что бы добиться других его показателей в работе SWF ролика) но не получается енто окно где виден код скрипта открыть.
Поиски к открытию сего окна привели к востановлению системы до раннее сохраненной работы ПК, т.к. регулировки, что находятся в файл - параметры публикации. не ведут к появлению окна, а лишь меняют публикацию самого ролика, который (после изменения там. настроек) начинает работать не правильно. Так вот.
Вопрос прежний.
сорри чет невоткнул в вопрос слету F9
или предпоследняя заклака (Window) в верхнем меню а там уже все окна и открытые и закрытые (горячки наних)
В приложение на языке ActionScript 3.0 можно загрузить любые внешние активы для показа:
SWF-файл, разработанный в ActionScript 3.0 — этот файл может относиться к классу Sprite, MovieClip или любому классу, являющемуся расширением Sprite. В приложениях AIR в ОС iOS можно загружать только SWF-файлы, не содержащие байт-код ActionScript. Это означает, что можно загрузить SWF-файлы, содержащие внедренные данные, такие как изображения и звук, но нельзя загрузить SWF-файлы, содержащие исполняемый код.
Файл изображения — файлы в форматах JPG, PNG и GIF.
Файл AVM1 SWF — это SWF-файл, созданный на языке ActionScript 1.0 или 2.0. (не поддерживается в приложениях AIR для мобильных устройств)
Загрузка этих активов производится с помощью класса Loader.
Просмотр хода загрузки
После начала загрузки файла создается объект LoaderInfo. Объект LoaderInfo предоставляет информацию о процессе загрузки, URL-адресах загружающего объекта и загружаемого содержимого, общем количестве байтов для носителя, а также номинальной высоте и ширине содержимого. Объект LoaderInfo также отправляет события, позволяющие следить за ходом загрузки.
На следующей диаграмме показаны различные применения объекта LoaderInfo (как экземпляр основного класса SWF-файла, как объект Loader и как объект, загруженный объектом Loader):
Полноразмерное изображение
Объект LoaderInfo можно вызвать как свойство одновременно объекта Loader и загруженного экранного объекта. Как только начнется загрузка, объект LoaderInfo можно вызвать с помощью свойства contentLoaderInfo объекта Loader. По завершении загрузки экранного объекта объект LoaderInfo можно также вызвать в качестве свойства загруженного экранного объекта с помощью свойства loaderInfo экранного объекта. Свойство loaderInfo загруженного экранного объекта относится к тому же объекту LoaderInfo, что и свойство contentLoaderInfo объекта Loader. Другими словами, объект LoaderInfo совместно используется загруженным объектом и загрузившим его объектом Loader.
Чтобы вызвать свойства загруженного содержимого, необходимо добавить прослушиватель событий в объект LoaderInfo так, как это сделано в следующем коде:
Дополнительные сведения см. в разделе «Обработка событий».
Загрузка экранных объектов
Объекты Loader используются для загрузки SWF-файлов и файлов графики в приложение. Класс Loader — это подкласс класса DisplayObjectContainer. Объект Loader может содержать в своем списке отображения только один дочерний экранный объект, который представляет собой загружаемый SWF-файл или файл графики. При добавлении объекта Loader в список отображения (как в следующем коде) в него после завершения загрузки добавляется также загруженный дочерний экранный объект:
После загрузки SWF-файла или изображения можно переместить загруженный экранный объект в другой контейнер экранного объекта (например, в данном примере это container DisplayObjectContainer):
Настройка Flash для движка AVM 2.0
- плагин, который установлен в веб-браузере для воспроизведения файлов SWF, является ключом к успеху при создании быстрых приложений. Чтобы скомпилировать, а затем запустить любой код ActionScript в роликах, Flash Player использует инструмент, называемый ActionScript Virtual Machine (виртуальная машина ActionScript) или AVM. Для ActionScript 1.0 и 2.0 Flash Player использует AVM 1.0. Flash Player 9 представил новый AVM версии 2.0, который используется для работы только с SWF-файлами ActionScript 3.0. Освоить его довольно просто.
Используя AVM 2.0. вы можете создавать приложения, которые характеризуются высокой скоростью и сложностью традиционных настольных приложений. Примерами таких приложений являются WorkFlow Lab от Adobe — инструмент, который позволяет разрабатывать составные приложения Workflow и конкурирует непосредственно с инструментом Visio от Microsoft; Adobe Story — инструмент, который позволяет создавать сценарии мультимедийной и видеопродукции, а также Kuler - сложный инструмент управления цветами. Использование данных инструментов дает такую же ответную реакцию, как и традиционные настольные приложения.
Разработка на ActionScript 3.0 решений, которые ориентированы на движок AVM 2.0, гарантирует, что вы значительно оптимизируете свою работу во Flash.
Flash Player 9 поддерживает AVM 1.0 для обратной совместимости с существующими и устаревшим содержимым. Flash Player 7 и 8 поддерживают только AVM 1.0. Однако есть несколько моментов, касающихся совместимости, о которых вы должны знать. SWF-файл не может объединить ActionScript 1.0 или 2.0 с кодом версии 3.0, при этом код может загрузить файл SWF с версиями 1.0 или 2.0, но он не может получить доступ к переменным и функциям файла (за исключением возможности использовать команду loadMovieNum() и передать параметр уровня). Если у вас есть код версий 1.0 или 2.0 и вы хотите использовать код версии 3.0, необходимо привести весь старый код к ActionScript 3.0. Если вы хотите использовать поведения, вам нужно прибегнуть к ActionScript 2.0, так для 3.0 поведения недоступны.
Работа с ActionScript 3.0
Есть два способа работы с ActionScript. Первый заключается в добавлении ActionScript на временную шкалу. Это знакомо давним разработчикам Flash. Рекомендуется иметь слой на этой временной шкале, посвященный только работе с ActionScript. Adobe советует пометить его как actions. Блокировка данного слоя предотвратит случайное добавление на него фрагментов ролика.
Второй метод заключается во вставке ActionScript в файлы Flash с файлом класса (Class). Файлы класса имеют долгую историю в мире разработки. С их помощью вы можете указать как публичные, так и приватные классы. Ключевое слово Private ограничивает использование атрибута, определенного только в этом классе, а не совместно с другими классами. Это полезно, когда вы разрабатываете инструкции, которые должны быть выполнены в отдельном пространстве в частном порядке.
Другие важные изменения перечислены ниже:
Разработка построения решений с моделью событий DOM 3.
Использование пространств имен в ваших проектах.
Рисование с помощью класса фигуры (Shape).
Возможность легко работать с внешними библиотеками ActionScript.
Несмотря на все изменения в ActionScript 3.0 по сравнению с 2.0, важно помнить, что есть много функциональных возможностей, одинаковых для обеих версии. Например, вы по-прежнему можете использовать тем же самым образом следующие элементы: переменные, объект Math, выражения if/else, выражения switch, строки, даты, массивы и логические значения.
Следующий код работает как в ActionScript 2.0, так и в версии 3.0:
Как видите, общая структура синтаксиса одинакова в обеих версиях ActionScript. Код завершается фигурной скобкой, имена переменных чувствительны к регистру и не могут начинаться с цифры, объекты классов используются одинаково.
Расширение ActionScript открытыми библиотеками
Основой языка ActionScript 3.0 является то, что он может быть легко расширен. Для этого можно использовать десятки больших отрытых библиотек, расширяющих функциональность Flash. Достойными примерами являются:
Box2D Physics Engine;
CoreLib – коллекция базовых утилит, таких как хеширование MD5, сериализация JSON и расширенный анализ данных;
Syndication Library – библиотека, которая позволяет легко разбирать базовые каналы ATOM и RSS;
Alive PDF – библиотека, позволяющая преобразовывать содержимое экрана с Flash в формат PDF.
Использование объектно-ориентированного программирования в ActionScript
Объекты являются ключом к пониманию объектно-ориентированного программирования (ООП). В ООП объект является столь же реальным, как и обычный объект в нашем мире. Например, собака или даже компьютер - объекты, которые существуют в реальном мире. Объекты реального мира схожи с объектами компьютерного мира по двум параметрам: у них есть определенное состояние и поведение. Например, состояние собаки можно описать такими свойствами, как ее имя, окрас, порода, и тем, голодна ли она. Поведением собаки будет лай, привлечение внимания и виляние хвостом.
Компьютерные объекты моделируются по образцу объектов реального мира в плане конкретных состояния и поведения. Класс является представлением объекта, который хранит информацию о типе его данных, состоянии и поведении. Класс может включать в себя три типа характеристик: свойства, методы и события. Свойства представляют различные данные, связанные с объектом. Методы означают действия, которые могут быть выполнены с объектом. Событие – это действие системы, приложения или пользователя (например, щелчок кнопкой мыши, который вызывает действие, связанное с объектом).
После создания класса вы можете создавать классы на основе существующего, которые называются подклассами, или расширениями класса. Подкласс наследует все свойства и методы родительского класса, который, в свою очередь, будет называться суперклассом. Например, вы можете создать суперкласс Parent и подкласс Children. Наследование позволяет одному определению класса (подклассу) включать все функции другого определения класса (суперкласса). Вы также можете создавать дополнительные методы и свойства подкласса, а также переопределять методы, унаследованные от суперкласса, что называется полиморфизмом.
Наследование и подклассы очень удобны для больших проектов, где вы можете делиться своей функциональностью и уменьшать количество кода.
Объект поддерживает свое состояние с помощью одной переменной или большего их количества. Переменная – это элемент данных, названный определенным идентификатором. Все, что объект понимает (его состояние) и может сделать (его поведение), выражается через переменные и методы внутри этого объекта.
Объект, представляющий собой движущийся автомобиль, будет иметь переменные, которые отражают его скорость, направление и цвет, как показано на рисунке ниже. Эти переменные известны, как переменные экземпляра, потому что они содержат состояния конкретного объекта, а в объектно-ориентированной терминологии конкретный объект называется экземпляром. Вдобавок к своим переменным у автомобиля будут методы, отвечающие за изменение скорости и включение фар. Эти методы называются методами экземпляра, поскольку они проверяют или изменяют состояние конкретною экземпляра.
Использование классов ProLoader и ProLoaderInfo
В среде Flash Professional CS5.5 представлены новые классы fl.display.ProLoader и fl.display.ProLoaderInfo, помогающие выполнить предварительную загрузку удаленной общей библиотеки (RSL). Эти классы зеркально воспроизводят классы flash.display.Loader и flash.display.LoaderInfo, но обеспечивают более последовательное взаимодействие при загрузке.
В частности, ProLoader помогает загрузить файлы SWF, использующие Text Layout Framework (TLF) с предварительной загрузкой RSL. Во время выполнения файлам SWF, предварительно загружающим другие файлы SWF или SWZ, например TLF, требуется только внутренний файл оболочки SWF. Дополнительный уровень сложности, связанный с использованием файла оболочки SWF, может привести к нежелательному поведению. ProLoader позволяет решить проблемы, связанные с загрузкой этих файлов, загружая их как обычные файлы SWF. Решение, используемое классом ProLoader, является прозрачным для пользователей и не требует специальной обработки в среде ActionScript. Помимо этого, класс ProLoader правильно загружает обычное содержимое SWF.
В среде Flash Professional CS5.5 и более поздних версий можно без последствий заменить все используемые экземпляры класса Loader классом ProLoader. Затем необходимо экспортировать программу в среду Flash Player 10.2 или более поздней версии, чтобы класс ProLoader мог получать доступ к необходимым функциям ActionScript. Класс ProLoader также можно использовать при разработке приложений для более ранних версий Flash Player, поддерживающих ActionScript 3.0. Однако полный функциональный набор класса ProLoader доступен только в среде Flash Player 10.2 или более поздних версий. Всегда используйте класс ProLoader вместе с TLF в среде Flash Professional CS5.5 или более поздних версий. Класс ProLoader не требуется в средах, отличных от Flash Professional.
Важная информация. Для файлов SWF, опубликованных во Flash Professional CS5.5 и более поздних версий, всегда можно использовать классы fl.display.ProLoader и fl.display.ProLoaderInfo вместо классов flash.display.Loader и flash.display.LoaderInfo.
Проблемы, которые решает класс ProLoader
Класс ProLoader решает проблемы, обработка которых не предусмотрена существующим классом Loader. Эти проблемы возникают в связи с предварительной загрузкой RSL библиотек TLF. В частности, они относятся к файлам SWF, использующим объект Loader для загрузки других файлов SWF. В числе решаемых проблем:
Программа SWF должна активно управлять процессом загрузки. Для этого требуется реализация дополнительных событий, таких как added , removed , addedToStage и removedFromStage . Если приложение предназначено для проигрывателя Flash Player 10.2 или более поздних версий, класс ProLoader исключает необходимость выполнения дополнительной работы.
Обновление кода для использования класса ProLoader вместо класса Loader
Поскольку класс ProLoader является зеркальным повторением класса Loader, можно без труда поочередно использовать в коде эти два класса. Следующий пример демонстрирует обновление существующего кода для использования нового класса.
Этот код можно обновить для использования класса ProLoader следующим образом:
В состав Animate входит автономный отладчик для ActionScript 3.0, работа которого отличается от отладчика ActionScript 2.0. Отладчик ActionScript 3.0 работает только с FLA-файлами и AS-файлами ActionScript 3.0. Параметры публикации FLA-файлов должны быть установлены для Flash Player 9. При начале сеанса отладки на языке ActionScript 3.0 Animate запускает автономную отладочную версию Flash Player для воспроизведения SWF-файла. Отладчик проигрывателя Flash воспроизводит SWF-файл в окне, отдельном от окна исходного приложения Animate.
Отладчик ActionScript 3.0 преобразует рабочее пространство Animate в рабочее пространство отладки, в котором отображаются панели, необходимые для отладки. В их число входит панель «Действия» и (или) окно «Сценарий», консоль отладки и панель «Переменные». В консоли отладки отображается стек вызовов, она содержит инструменты пошагового выполнения сценариев. На панели «Переменные» выводятся переменные в текущей области действия и их значения, в ней можно вручную редактировать эти значения.
Дополнительные ресурсы
Дополнительные сведения об отладке кода ActionScript 3.0 см. в следующих источниках.
Способ открытия сеанса отладки зависит от типа рабочего файла. Во время сеанса отладки Animate прерывает выполнение сценария ActionScript, если встречается точка останова или ошибка этапа выполнения.
Когда Animate запускает сеанс отладки, к SWF-файлу, который экспортируется для этого сеанса, добавляется специальная информация. Она позволяет отладчику определить номера конкретных строк, в которых встретились ошибки.
Такую специальную информацию отладчика можно включить в параметрах публикации во все SWF-файлы, созданные из конкретного FLA-файла. Это позволит отлаживать SWF-файл без явного запуска сеанса отладки. Информацию отладчика немного увеличивают размер SWF-файла.
Выбор среды отладки по умолчанию
Нажмите Отладка > Отладка ролика и выберите один из следующих вариантов:
AIR Debug Launcher (стандартная версия)
AIR Debug Launcher (мобильная версия)
на устройстве через USB (только для CS5.5)
Все сеансы отладки выполняются в выбранной среде. Среду по умолчанию можно изменить в любое время.
Запуск отладки из FLA-файла
Выберите Отладка > Отладка
(CS6 и более ранних версий) Выберите Отладка > Отладка ролика > Отладка .
Запуск отладки из AS-файла ActionScript 3.0
Откройте файл ActionScript в окне «Сценарий» и в меню «Целевой файл» в верхней части окна Сценарий» выберите FLA-файл, с которым должен компилироваться файл ActionScript. FLA-файл также должен быть открыт в Animate, чтобы появиться в этом меню.
Выберите Отладка > Отладка
(CS6 и более ранних версий) Выберите Отладка > Отладка ролика > Отладка .
Добавление отладочной информации ко всем SWF-файлам, созданным из FLA-файла
При открытом FLA-файле выберите «Файл» > «Параметры публикации».
В диалоговом окне «Параметры публикации» выберите вкладку (CS5) или категорию (CS5.5).
Выберите «Разрешить отладку».
Выход из режима отладки
Добавьте точки останова к коду ActionScript, чтобы прервать выполнение кода. После прерывания выполнения можно выполнять код пошагово по строкам, просматривать различные разделы кода ActionScript, просматривать значения переменных и выражений, а также изменять значения переменных.
Точки останова нельзя добавлять к ASC-файлам (ActionScript for Communication) и JSFL-файлам (Flash JavaScript).
Установка точки останова
На панели «Действия» или в окне «Сценарий» щелкните левую границу рядом со строкой кода, в которую нужно добавить точку останова.
Удаление точки останова
На панели «Действия» или в окне «Сценарий» нажмите точку останова, чтобы удалить ее.
После прерывания сценария ActionScript на точке останова или при ошибке выполнения можно осуществить пошаговое выполнение кода. Вы можете выбрать один из вариантов: осуществить вызов функции или пропустить ее. Можно также продолжить выполнение кода в обычном режиме.
Пошаговое выполнение кода
Пропуск функции
Выход из функции
Продолжение выполнения кода
Когда в отладчике прерывается выполнение кода, в консоли отладки можно просматривать стек вызовов и отображать сценарии, содержащие функции из стека вызовов. В стеке вызовов показан текущий список вложенных вызовов функций, ожидающих завершения выполнения.
Можно просматривать отдельные сценарии, которые содержат каждую функцию.
Просмотр и изменение значений переменных и свойств осуществляются на панели «Переменные».
Просмотр значения переменной
На панели «Переменные» в меню панели выберите отображаемые типы переменных.
«Показать константы» отображает значения констант (переменных с фиксированным значением).
«Показать помехи» отображает переменные, принадлежащие классу, а не к экземплярам класса.
«Показать недоступные переменные экземпляров» отображает переменные, недоступные другим классам и пространствам имен. Сюда входят защищенные и частные переменные, а также внутренние для данного пространства имен.
«Показывать дополнительные шестнадцатеричные значения» добавляет шестнадцатеричные значения к выводу десятичных. Это может оказаться полезным для просмотра значений цвета. Шестнадцатеричные значения не отображаются для десятичных значений от 0 до 9.
«Показать полные имена» отображает типы переменных с именем пакета и именем класса.
Разверните дерево структуры объектов FLA-файла, пока не будет отображена нужная переменная.
Изменение значения переменной
На панели «Переменные» дважды щелкните значение переменной.
Введите новое значение и нажмите клавишу Enter. Новое значение используется при дальнейшем выполнении кода.
Управление типами предупреждений компилятора, которые ActionScript создает на панели «Ошибки компиляции». Если компьютер сообщает об ошибке, дважды щелкните по ней для перехода к вызвавшей ошибку строке кода.
- При строгом режиме предупреждения считаются ошибками. Это означает, что компиляция не завершится успешно, пока остаются такие ошибки.
- В режиме уведомлений создаются дополнительные предупреждения, полезные при обнаружении несовместимостей при обновлении кода ActionScript 2.0 до ActionScript 3.0.
Если Animate встречает ошибку в коде ActionScript во время компиляции или во время выполнения, она выводит эту ошибку на панель «Ошибки компиляции». Переход к строке кода, на которой возникла ошибка, можно выполнить из панели «Ошибки компиляции».
В языке ActionScript 3.0 удаленный SWF-файл можно отладить с помощью автономного отладчика, модуля ActiveX или внешнего модуля отладчика Flash Player, который можно найти в каталоге каталог_установки_Animate/Players/Debug/. Однако, в Отладчике ActionScript 3.0 удаленная отладка применяется только к файлам, расположенным на том же локальном хосте, что и приложение Animate, и воспроизводимым на отдельном отладочном проигрывателе с помощью управляющего элемента ActiveX или модуля.
Чтобы разрешить удаленную отладку файла, включите отладку в параметрах публикации. Можно также опубликовать файл с паролем для отладки, чтобы гарантировать, что отлаживать его смогут только доверенные пользователи.
Как и в JavaScript или HTML, пользователи могут просматривать в ActionScript переменные клиентских приложений. Для надежного хранения переменных отправьте их в серверное приложение вместо того, чтобы хранить переменные в файле. Однако у разработчиков могут быть другие профессиональные секреты, например структуры фрагментов ролика, которые необходимо хранить в тайне. Чтобы защитить свою работу, можно использовать пароль для отладки.
Включение удаленной отладки SWF-файла и установка пароля для отладки
В FLA-файлах ActionScript 3.0 нельзя отлаживать код в кадровых сценариях. В отладчике ActionScript 3.0 можно отлаживать только код во внешних AS-файлах.
КАк мне ее модифицировать? Подскажите необходимое ПО.
Загрузка Swf файла в Swf
Привет всем,в данный момент хочу сделать себе веб страницу во Flash страница состоит с 3 swf .
Открытие файла SWF из SWF
Приветствую, имеются два ролика SWF - один кнопка, второй большая анимированная сцена. Как по.
Каким образом из загруженного swf передать команду прелоадеру на загрузку другого swf?
День добрый. Есть внешний прелоадер, который загружает swf файлы содержащие разные уровни игры. В.
Загрузка внешнего swf файла
Я во Flash ещё новичок, и мне нужна помощь. Задача: требуется загрузить один swf внутрь другого.
Спасибо за быстрый ответ!!
А я вот нашел Flex SDK 3.5 (весит не много, смог быстро скачать)
Могу ли я с его помощью скомпилировать то, что я сейчас декомпилировал? )
про обратную компиляцию особенно для новичка..
зависит от того в чем была изначально скомпилирована свф"ка
если флексом, то конечно перекомпилировать лучше пытаться флеком, просто флекс не такой уж интуитивно понятный, чтоб так с наскоку что-то с его помощью сделать..
если есть все исходники (и по ним видно, что это AS3.0), я бы рекомендовал установить еще удаленна ссылка на посторонний форум (правда, ему нужно jre 1.6) - это FlashDevelop, легкая и быстрая среда разработки, которая использует flex sdk как компилятор
Открытие нового swf файла
Извиняюсь за глупый вопрос, но как открыть другой swf файл при помощи as3 ?)
Смена директории swf файла
Создана программа в FlashBuilder по загрузки 3д модели с интернета c помощью библиотеки.
Импорт готового swf файла в проект
Всем привет! Собственно, вопрос, есть swf файл, не видео. Как его закинуть? Добавлено через 3.
Вставка одного swf файла в другой
Можно ли вставить один swf файл в другой так, чтобы на выходе получился 1 swf. Идея в том, что.
Загрузка swf в контейнер другой swf
Подскажите, как в as3 сделать, чтобы подгружаемая флешка появлялась не на тойже сцене, а в окошке.
Платформа Adobe Flash является основой для разработки многофункциональных интерактивных веб-приложений, презентаций и пользовательских интерфейсов. Приложение Flash позволяет разработчикам и дизайнерам использовать графику, текст, аудио и видео.
В последние годы самые популярные браузеры пытаются избавиться от использования Flash в пользу возможностей HTML5. Например, в последних версиях Google Chrome плагин Adobe Flash Player остановлен по умолчанию и на сайтах, использующих Flash, необходимо включать его вручную. Многие популярные видео-сервисы, такие как YouTube, также отказались от использования Flash в пользу HTML5. Тем не менее, до сих пор особо популярными остаются игры на flash, где возможности HTML5 пока значительно уступают.
У Flash есть два «лица»: то которое вы видите на экране, и комплексный механизм сценариев, называемый ActionScript, который вы не видите. Являясь языком сценариев, встроенным во Flash, ActionScript позволяет создавать интерактивные решения. Любой ролик, где нужно что-то нажать, перетащить или поставить на паузу, требует использования ActionScript, который укажет Flash, что надо делать. ActionScript является основой всей интерактивности и логики, встроенной во Flash.
В выпуске Flash CS3 был представил ActionScript 3.0 - значительно усовершенствованный язык сценариев. Старые версии ActionScript медленно выполняли большие и сложные сценарии. ActionScript 3.0 изменил это. Он почти в 10 раз быстрее по сравнению с ActionScript 2.0 и обладает намного большей функциональностью.
Из этой статьи вы узнаете, почему ActionScript 3.0 — тот язык программирования, который вы захотите начать использовать, что изменилось по сравнению с более ранними версиями ActionScript, а что осталось таким же и как сделать наши приложения еще мощнее. Единственная проблема, которую вам придется решить - это выбрать, что разрабатывать в первую очередь.
Виртуальные машины и JavaScript
Веб-браузеры используют виртуальные машины для запуска JavaScript, который является «двоюродным братом» ActionScript. Обе технологии построены на международном формате ECMA-262, или ECMAScript, как его часто называют. Такие браузеры, как Google Chrome, Safari, FireFox и Internet Explorer используют виртуальные машины сценариев JavaScript (JavaScript Virtual Machines - JVM) для воспроизведения содержимого.
Многие из компаний, создающих движки для браузеров, дали им яркие названия: V8 для Google Chrome, SquirrelFish для Safari и SpiderMonkey для FireFox. Но победителем в оригинальных названиях конечно можно дать Microsoft – ее творческое вдохновение ограничилось названием своей виртуальной машины JS (для JavaScript).
Конечно AVM 2.0 от Adobe здесь занимает второе место. Есть ли шанс, что Adobe все-таки присвоит AVM 3.0 какое-нибудь яркое имя?)
Загрузка SWF-файлов в среде AIR для iOS
На устройствах под управлением iOS имеются ограничения на загрузку и компиляцию кода во время выполнения. Из-за этих ограничений возникают следующие сложности при загрузке внешних SWF-файлов в приложение.
Все SWF-файлы, содержащие код ActionScript, должны входить в пакет приложения. Загрузка SWF с кодом из внешнего ресурса (например, по сети) невозможна. При создании пакета приложения весь код ActionScript в SWF-файлах пакета компилируется в собственный код устройств iOS.
Загрузка, выгрузка и повторная загрузка SWF-файла невозможна. При попытке выполнить эти действия возникнет ошибка.
Поведение среды при загрузке в память и выгрузке из нее не отличается от поведения настольных платформ. После выгрузки загруженного SWF-файла все визуальные ресурсы, содержащиеся в нем, будут выгружены из памяти. Однако все ссылки на классы ActionScript из загруженного SWF-файла останутся в памяти и могут быть использованы кодом ActionScript.
Все загружаемые SWF-файлы должны быть загружены в том же домене приложения, что и основной SWF-файл. По умолчанию такого не происходит, поэтому для каждого загружаемого SWF-файла следует создавать объект LoaderContext с указанием на основной домен приложения и передавать этот объект LoaderContext при вызове метода Loader.load(). При попытке загрузить SWF-файл в домен приложения, отличный от домена приложения основного SWF-файла, возникает ошибка. Это правило также выполняется, если загружаемый SWF-файл содержит только визуальные ресурсы и не содержит кода ActionScript.
В следующем примере показан код, которым осуществляется загрузка SWF-файла из пакета приложения в домен приложения основного SWF-файла.
SWF-файл, содержащий только ресурсы без кода, может быть загружен как из пакета приложения, так и по сети. В обоих случаях этот SWF-файл так же необходимо загружать в основной домен приложения.
Если среда AIR имеет более раннюю версию, чем AIR 3.6, в процессе компиляции игнорируется весь код во всех SWF-файлах, кроме основного файла приложения. В пакет приложения для загрузки во время выполнения можно включать только SWF-Файлы, содержащие визуальные ресурсы и не содержащие код. При попытке загрузить SWF-файл, содержащий код ActionScript, возникнет ошибка. Эта ошибка приведет к появлению в приложении диалогового окна Uncompiled ActionScript (Нескомпилированный ActionScript).
См. также
Использование ActionScript 3.0
По сравнению с предыдущими версиями, ActionScript 3.0 претерпел значительные изменения. Это не означает, что если вы работали с ActionScript 1.0 или 2.0, то вам придется тяжело. Просто освоение новых способов использования кода потребует времени.
Указание контекста загрузки
При загрузке внешнего файла в Flash Player или AIR с помощью метода load() или loadBytes() класса Loader можно при желании указать параметр context . Этот параметр является объектом LoaderContext.
Класс LoaderContext включает три свойства, которые позволяют определить контекст применения загруженного содержимого.
checkPolicyFile : используйте это свойство только при загрузке файла изображения (а не SWF-файла). Если этому свойству задано значение true , объект Loader проверяет наличие файла политики на исходном сервере (см. раздел Элементы управления веб-сайта (файлы политики)). Это необходимо выполнить только для содержимого, взятого из доменов, которые отличаются от домена SWF-файла, содержащего объект Loader. Если сервер дает разрешение на доступ к домену Loader, ActionScript из SWF-файлов в домене Loader может вызывать данные в загруженном изображении. Иными словами, можно использовать команду BitmapData.draw() для доступа к данным в загруженном изображении.
Учтите, что SWF-файл из доменов, которые отличаются от домена объекта Loader, могут вызвать Security.allowDomain() , чтобы разрешить определенный домен.
securityDomain : используйте это свойство только при загрузке SWF-файлов (но не изображений). Его следует указывать для SWF-файла из домена, который отличается от домена файла, содержащего объект Loader. Когда указывается этот параметр, Flash Player проверяет наличие файла политики. Если он существует, SWF-файлы из доменов, разрешенных файлом междоменной политики, могут применять загруженное содержимое SWF в разных сценариях. В качестве данного параметра можно указать flash.system.SecurityDomain.currentDomain .
applicationDomain : используйте это свойство только при загрузке SWF-файлов, написанных на языке ActionScript 3.0 (а не изображений или SWF-файлов, написанных на ActionScript 1.0 или 2.0). При загрузке этого файла можно указать, чтобы файл был включен в тот же домен приложений, что и объект Loader, присвоив параметру applicationDomain значение flash.system.ApplicationDomain.currentDomain . Разместив загруженный SWF-файл в том же домене приложений, можно вызывать его классы напрямую. Это может оказаться полезным, если загружается SWF-файл, содержащий встроенные мультимедийные файлы, доступ к которым может осуществляться по связанным именам классов. Дополнительные сведения см. в разделе «Работа с доменами приложений».
Вот пример проверки наличия файла политики при загрузке растрового изображения из другого домена:
Вот пример проверки наличия файла политики при загрузке SWF-файла из другого домена в целях размещения файла в той же изолированной программной среде, что и объект Loader. Кроме того, этот код добавляет классы в загруженном SWF-файле в тот же домен приложения, что и у объекта Loader:
Понимание ActionScript 3.0
Объектно-ориентированное программирование позволяет разбивать код на объекты, которые могут быть легко использованы повторно. С помощью ООП легче управлять приложением, которое состоит из целой коллекции файлов маленького размера, а не из одного большого файла.
Рассмотрим основные изменения, которые потребуют определенного времени на привыкание к ним:
ActionScript находится в файлах класса или на временной шкале.
Проектирование кода действительно объектно-ориентированное.
Вы не можете добавлять ActionScript непосредственно к фрагментам роликов или экземплярам кнопок.
Запуск событий претерпел изменения.
Загрузка данных изменилась.
XML управляется по-другому.
Кроме того, добавлено использование информации о типе во время выполнения, улучшено использование свойств и классов с изолированными кассами, добавлено использование метода замыкания для обработки событий, включен стандарт ECMAScript для XML, улучшена поддержка регулярных выражений и добавлены примитивные типы (например, int – целочисленный тип).
Читайте также: