Что такое код swf_actiongotolabel

Содержание

Способы вставки Flash в HTML и XHTML

«Как правильно вставить объекты Flash в вашу HTML-страницу?»

Это должно быть простой вопрос, но вероятно вызывает множество споров, так как каждый из доступных способов встраивания объектов имеет свои преимущества и недостатки. В этой статье мы исследуем трудности и тонкости встраивания Flash-содержимого и рассмотрим наиболее популярные способы вставки объектов.

Основные компоненты метода встраивания Flash-объектов

Прежде чем перейти к практике, давайте сначала охарактеризуем идеальный метод. По моему мнению, следующие критерии имеют первостепенное значение.

Соответствие стандартам

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

Межбраузерная поддержка

Поддержка всеми основными браузерами и популярными операционными системами — это необходимое условие. Проверить разметку можно с помощью инструментария Flash embed test suite, который позволяет оценить, поддерживают ли браузеры тот или иной метод разметки, с помощью которой можно вставить Flash-объекты. Этот набор тестов может показать информацию о параметрах, в том числе различных настройках Flash, потоках и сценариях, поддерживаемых браузерами и ОС. Вы также можете изучить сводную таблицу, отображающую эти параметры.

Поддержка альтернативного содержимого

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

Избежание несоответствия между Flash-контентом и версией Flash-плеера

К сожалению для многих из нас, Flash-контент будет воспроизводиться вне зависимости от версии Flash-плеера, для которого он был создан. В этом нет ничего страшного до того момента, пока устаревший плагин не обнаружит функции, которые работают только в его более поздних версиях. Если так произойдет, ваши посетители увидят «нарушенное» содержимое или вовсе ничего не увидят.

Автоактивация интерактивного контента

Браузеры компании Microsoft работают так, что посетители не могут напрямую взаимодействовать с элементами управления Microsoft ActiveX, который позволяет загружать объекты и элементы embed , также называемые «интерактивным контентом».

Короче говоря, браузеры Microsoft не позволят взаимодействовать с интерактивным контентом, пока пользователь самостоятельно его не активирует. Opera также внедрила похожий механизм «click-to-activate». Этот механизм работает как «лежачий полицейский» на дороге: вы должны приостановить движение, медленно переехать через него, и только потом нажать педаль газа. Это может запутать обычного интернет-серфера и разозлить даже самого опытного.

Простота реализации

Конечно же простота имеет значение. Зачем прыгать выше головы, если можно сделать проще?

Основы встраивания Flash-объектов: embed и object

Существуют два элемента HTML, которые позволяют вставить объекты Flash на веб-страницу. В одной руке, у нас есть запатентованный элемент embed , который поддерживается большинством браузеров:

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

Большинство современных браузеров выбрали стандартом альтернативу тегу embed , используя при этом MIME-тип объекта, чтобы подключить соответствующий плагин для воспроизведения содержимого:

Этот метод не привязан к какому-либо определенному браузеру и поэтому это предпочтительная реализация.

Второй способ реализации создан специально для Internet Explorer на Windows. При этом требуется, чтобы вы определили атрибут classid у объекта, чтобы браузер смог загрузить необходимый элемент управления ActiveX Flash-плеера. Такой способ допустим, но зависим от типа браузера:

Замечание: В двух последних примерах кода специально не указан параметр codebase — он часто используется, чтобы уточнить URL инсталлятора Flash на серверах Adobe (браузер может автоматически загрузить его, если он еще не установлен). Однако это запрещено согласно спецификациям, которые ограничивают его доступ только в пределах домена текущего документа, и поэтому этот параметр не поддерживается всеми современными браузерами.

Почему embed все еще используется

С появлением веб-стандартов можно было бы совершенно обоснованно удалить элемент embed . Он просто никогда не был рекомендацией W3C и никогда не будет, потому что он уже запатентован. Однако в действительности этот способ лучше поддерживается браузерами, чем отдельная реализация элемента object . В результате такой способ реализации выбран на большинстве веб-сайтов, таких как Google Video и Brightcove.

Хотя веб-стандарты созданы, чтобы избежать проблем совместимости, элемент embed более ясен и недвусмыслен, чем элемент object , одобренный W3C. Жесткие правила реализации элемента embed и хорошая поддержка превратила его в фактический стандарт, который будет использоваться до тех пор, пока не будет универсальной поддержки элемента object , достаточной для того, чтобы игнорировать версии браузеров, которые его не поддерживают.

Где нарушена поддержка веб-стандартов

Двойственная реализация элемента object формально не нарушает веб-стандарты, но создает множество проблем. Следовательно, нам нужно найти способ объединить два метода реализации объектов в один. Еще хуже то, что мы также должны разобраться с браузерами, которые имеют (или раньше имели) неправильную реализацию объектов. Давайте рассмотрим эти проблемы:

  • Общая реализация объектов не работает в Internet Explorer на Windows. IE загружает плагин и SWF-файл, но не показывает его содержимое.
  • Когда мы частично объединяем два способа реализации добавлением параметра movie к общей реализации, Internet Explorer отображает Flash-контент, но не проигрывает его.
  • Если мы полностью соединим две реализации, все заработает в Internet Explorer, но браузеры на базе Gecko проигнорируют Flash-контент и покажут альтернативное содержимое.

Одной из особенностей элемента object является то, что вы можете вставлять этот тег друг в друга:

К сожалению, из-за ошибки в старых версиях Internet Explorer встроенные друг в друга элементы object рассматриваются так, как будто они следуют один за другим, поэтому отображаются оба элемента.

Еще хуже то, что браузеры Safari, начиная с версии 1.2.2 для Mac OS 10.3, игнорируют элемент param , встроенный в object , хотя поддерживают такие же атрибуты для элемента embed .

Замечание: Вы также можете спросить, насколько разумно определять контент, атрибуты и параметры дважды, как в вышеизложенном способе. Этот комбинированный метод также делает более проблематичным использование JavaScript для взаимодействия с Flash-контентом. В таком случае вы должны проверять, с каким объектом вы взаимодействуете.

Некоторые из ошибок уже исправлены, но необщепринятая и ошибочная в Internet Explorer реализация object все еще сдерживает абсолютное принятие этого элемента. Мы можем только надеяться, что это будет исправлено в ближайшем будущем.

Почему object лучше, чем embed

Несмотря на отсутствие поддержки всеми браузерами элемент object все же более предпочтителен, чем элемент embed , потому что кроме соответствия стандартам, он также обладает превосходной поддержкой альтернативного содержимого.

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

Элемент embed поддерживает альтернативное содержимое посредством элемента noembed , но такая реализация работает только в тех браузерах, которые не поддерживают сам элемент embed , например Internet Explorer на платформах Windows Mobile. В отличие от элемента object , embed не поддерживает альтернативное содержимое, когда поддерживается сам элемент embed , но не установлен Flash-плагин. В такой ситуации, можно довольствоваться только атрибутами pluginurl и pluginspage , с помощью которых отображается картинка, кликнув по которой можно установить плагин.

Я думаю, это лучшее решение для отображения альтернативного контента, чтобы описать необходимый плагин и дать намек на то, что пользователь может загрузить и установить плагин Flash. (Тем не менее, нет других причин, по которым мы должны злоупотреблять атрибутом codebase .)

Таким образом, элемент object обладает значительными преимуществами перед элементом embed в том случае, если вы предпочитаете создавать соответствующий стандартам код или доступное, хорошо индексируемое поисковиками содержимое.

Недостаточность методов разметки

Принимая во внимание критерии, определенные нами ранее, — соответствие стандартам, межбраузерную поддержку, поддержку альтернативного содержимого, избежание несоответствий плейер/контент, автоконтроль интерактивного содержимого и простоту реализации — легко понять, что в действительности используются лишь те способы реализации, которые могут быть осуществлены только изменением разметки.

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

Однако, давайте сделаем краткий обзор наиболее популярных «комбинированных» методов встранивания Flash, осуществляемых с помощью (X)HTML-разметки.

Двусоставный метод

В Flash IDE, вы можете создавать HTML-страницы с помощью так называемого двусоставного метода, объединяющего реализацию объектов с помощью элемента object и embed , встроенного внутри него как альтернативный контент:

Как видите, этот метод основан исключительно на запатентованной разметке. Он несомненно фокусируется на межбраузерной поддержке, но не соответствует стандартам.

Двусоставный метод использует избыточный код, делает ваши веб-страницы логически непоследовательными и не позволяет вставить альтернативное содержимое. А единственная преимущество — это простота в использовании, так как его генерирует Flash IDE: так что не пытайтесь просить воспроизвести этот метод по памяти.

Метод вложенных объектов

Вложение двух реализаций объектов — хорошая альтернатива двусоставному методу, потому что этот метод соответствует стандартам и поддерживает альтернативный контент:

К сожалению, в этом методе отсутствует межбраузерная поддержка вследствие ошибки вложения элементов object в IE и отсутствия поддержки вложенных элементов param в Safari. Но можно использовать прием с условными комментариями IE, чтобы избежать ошибок браузера:

При использовании приведенного выше «раздутого» кода, этот метод становится даже более сложным для создателя, чем двусоставный. Он использует безобразные уловки, которые могут усложнить процесс создания кода при использовании серверных языков.

Flash Satay

Другая альтернатива — это метод Flash Satay, который основан на общем способе реализации объектов и включает дополнительный параметр movie . Этот параметр необходим, чтобы избежать ошибок отображения контента в IE. Он также включает movie-контейнер Flash (c.swf с переменной path), чтобы исправить ошибку с потоковым воспроизведением в IE:

Хотя он приближает нас к «идеальному», универсальному способу реализации объектов, Flash Satay содержит приемы, применение которых не подойдет каждому? и при использовании этого метода встроенные элементы param не поддерживаются старыми версиями Safari.

Аргументы в пользу DOM

Когда вы думаете о недостаточности методов разметки, вы можете поинтересоваться, почему нельзя использовать скрипты DOM. С помощью них, мы можем динамически управлять разметкой, как того требует каждый браузер, используя:

  • специальную реализацию для IE;
  • запатентованный элемент embed для старых версий Safari;
  • общую реализацию для всех остальных браузеров.

Скрипт DOM к тому же гибкий инструмент, достаточный для решения остальных проблем: прежде всего, мы можем использовать его для решения проблемы несовместимости Flash-плейера и Flash-контента, определяя версию плагина и проверяя то, что нужно показывать — Flash-контент или альтернативное содержимое. Когда необходимая версия плагина недоступна, мы можем инициировать экспресс-установку Adobe, — механизм встроенный в Flash-плейер. Тем самым мы упрощаем загрузку нужной версии.

Решение с применением DOM также позволяет нам избежать механизма «click-to-activate» с помощью динамического создания элементов object .

Будьте осторожны, используя JavaScript

Так как не каждый является опытным специалистом по JavaScript — да и даже тот, кто им является, не должен заново изобретать велосипед — неплохо использовать уже существующие библиотеки JavaScript для встраивания Flash. Давайте рассмотрим критерии выбора надежной библиотеки.

Разметка по стандартам редко поддерживается создателями библиотек, так как эти библиотеки определяют Flash-контент либо в JavaScript, либо другими средствами разработки. Большинство библиотек создают неправильный HTML и, так как разметка написана динамически, W3C-валидатор не способен её проверить.

С другой стороны нужно рассмотреть, как работает такой метод, если JavaScript не доступен, не поддерживается или поддерживается только отчасти. Что делать, если используя JavaScript, вы ограничиваете доступность контента для пользователей?

Приняв во внимание вышесказанное, давайте посмотрим, как работают некоторые популярные библиотеки.

Комплект по определению плейера Adobe Flash

Кроме создания разметки в Flash IDE, Adobe также предоставляет комплект по определению плейера Flash. Существует три способа использовать этот комплект:

  1. Проверив установлен или нет флажок Detect Flash Version (в меню File > Publish Settings > HTML) в Flash 8 IDE.
  2. Вставив его вручную, загрузив дистрибутив этой библиотеки.
  3. Работать в Flex Builder 2, где он включен по умолчанию.

Хотя пакет дает нам все желаемые возможности, такие как определение версии, экспресс-установка и автоактивация интерактивного контента, он нуждается в усовершенствовании. Когда мы полностью перейдем к стандартам, его ждет безнадежный провал: пока что он основан на двусоставной разметке, так как имеет либо реализацию объектов от Microsoft, либо поддержку запатентованного элемента embed , не соответствующего стандартам.

Он также поддерживает альтернативный контент, хотя странным и противоречивым образом. Вы должны определить альтернативный контент дважды: в JavaScript и в элементе noscript .

В конечном счете, комплект по определению плейера нуждается в лучшей реализации.

UFO и SWF Object

Популярные альтернативы с открытым исходным кодом, как UFO Боба ван дер Слуиса и SWF Object Джеффа Стирнса наверное самые полные и простые в использовании библиотеки, доступные в настоящее время.

Хотя на первый взгляд они кажутся похожими, они полностью отличаются внутренним содержанием. Например, SWF Object использует двусоставный метод Adobe, в то время как UFO генерирует главным образом соответствующую стандартам разметку. С другой стороны они используют общие архитектурные принципы: обе библиотеки построены на идее создания разметки, поддерживающей альтернативное содержимое (таким образом доступное и оптимизированное под поисковики), которое замещается DOM-скриптом, когда доступна необходимая поддержка Flash и JavaScript.

Несмотря на их явную поддержку альтернативного содержимого, обе библиотеки имеют один существенный недостаток: они зависят от JavaScript при вставке Flash-контента. В результате небольшая группа посетителей, установившая Flash плагин, но с отключенным JavaScript или с отсутствием достаточной поддержки JavaScript, будут видеть только альтернативное содержимое.

Аргументы в пользу «умеренного» программирования DOM

Чтобы решить все проблемы, вполне логично использовать следующий метод вставки: смешанную разметку, совместимую со стандартами, как та, которая используется методом Flash Satay, чтобы включить и Flash-контент, и альтернативное содержимое, наряду с применением небольшого DOM-скрипта, который необходим для устранения проблем в некоторых браузерах.

ObjectSwap основан на этих принципах и на мой взгляд является образцом для будущих библиотек встраивания Flash-объектов. К сожалению, ObjectSwap концентрируется в основном на автоактивации интерактивного контента, поэтому он не пригоден для определения версии и не решает проблем с разметкой, таких как поддержка потокового воспроизведения в IE или поддержка параметров в старых версиях Safari.

С другой стороны он может быть усовершенствован. При использовании события onload , поведение, основанное на DOM, реализуется только после загрузки всей страницы. Лучшим выбором могло бы быть событие DOMContentLoaded , которое позволяет вам применить свое собственное поведение, как только DOM станет доступен на странице. Так как событие DOMContentLoaded еще не полностью поддерживается браузерами, взамен этого вы можете использовать это решение.

Будущее встраивания Flash

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

LiveInternetLiveInternet

Музыка

Метки

Рубрики

  • (0)
  • Demiart (1)
  • Анимация (260)
  • Гиф (46)
  • Панорамы (7)
  • Надписи (4)
  • Флеш (204)
  • Аудиокниги (4)
  • Бродилки: Интересные сайты (38)
  • Видео (70)
  • Всегда под рукой (7)
  • Генераторы (9)
  • Генераторы разные онлайн (4)
  • Коды таблиц (1)
  • Коды цветов (1)
  • Синтезатор звуков (1)
  • Досуг:(флешки,игры) (46)
  • Забавные штучки (27)
  • Интернет-премудрости (22)
  • Создание сайта (7)
  • Картинки (6)
  • Клипарт (104)
  • Компъютерная грамота (46)
  • МАСТЕРСКАЯ ФЛЕШ . (9)
  • МОИ УРОКИ. (48)
  • МОИМ ДРУЗЬЯМ (44)
  • Мой ID сертификат (2)
  • Музыка: (154)
  • Музыкальные флеш-открытки (7)
  • Плееры (19)
  • Плейкасты (19)
  • Плейлисты (34)
  • Неотложка (16)
  • HTML, скрипты (14)
  • Всё для дизайна (3)
  • Онлайн сервисы (9)
  • Открытки (57)
  • Листалки (6)
  • Оформление дневника (72)
  • Создать разрезные рамки (3)
  • Полезности (75)
  • Кулинария (1)
  • Народная медицина (12)
  • Программы (26)
  • Справочный материал (10)
  • Разные разности (71)
  • Исходники Флеш и Гиф (39)
  • Кнопочки-переходы (1)
  • Рамочки (2)
  • Футажи (5)
  • Синемаграфия (3)
  • Создание слайд-шоу на Youtoube (1)
  • СТИХ_и_Я (2)
  • У моих друзей! (53)
  • Стихи Тани Петербуржской (2)
  • Флеш материал от Эврика (1)
  • «Коды» от Lyudmila Lyu (1)
  • After effects у Нины Гуревич (1)
  • PNG клипарт у Саши (pasigut). (1)
  • Досуг у LiSu! (3)
  • Картинки PNG у Cadmii (5)
  • Клипарты от griwunjka. (1)
  • Коллажи от ВАТ! (5)
  • Программы Flash у MissKcu (1)
  • Стихи от Iren Yusuf (1)
  • Уроки от jzayka (1)
  • Уроки от LEDY ANGEL (1)
  • Уроки от ЛЮБАШИ К. (3)
  • Уроки у surge blavat. (1)
  • Уроки флеш от Novprospekt (1)
  • Уроки флеш у Тани В.-Л. (2)
  • Флеш у Preriy (10)
  • Фотошоп-уроки у Herbstblatt (1)
  • Фракталы у Ларисы Гурьяновой (1)
  • Уроки (318)
  • Adobe Flash (81)
  • Adobe Illustrator (3)
  • After Effects (6)
  • Animation Shop 3 (1)
  • BluffTitler (5)
  • Corel MotionStudio 3D (2)
  • Crazy Talk (4)
  • DP Animation Maker v. 2.2.2 (2)
  • FantaMorph (1)
  • FastStone Capture (1)
  • Flash Album Deluxe (1)
  • iClone v5.4 PRO (2)
  • Incendia (1)
  • Kvisoft Flip Book Maker (2)
  • Macromedia Flash 8 Professional (2)
  • Magic Particles (5)
  • Mandelbulb 3D (1)
  • Particle Illusion (1)
  • POSER (1)
  • Proshow (14)
  • Sothink SWF Easy (5)
  • Sothink SWF Quicker (30)
  • Vectorian Giotto (1)
  • Word (2)
  • Xara 3D6 (1)
  • Создать плейлист (1)
  • Уроки флеш (96)
  • Фотошоп. Уроки (125)
  • Фотошоп.Уроки. (31)
  • Фотошоп:Плагины,фильтры и др. (28)
  • Фрактальное искусство (9)
  • Юмор,афоризмы,цитаты (37)
Илон Маск рекомендует:  Что такое код ovrimos_fetch_into

Ссылки

Видео

Поиск по дневнику

Подписка по e-mail

Друзья

Постоянные читатели

Сообщества

Статистика

Панель «Фрагменты кода» в Adobe Flash CS6..)

Суббота, 24 Мая 2014 г. 16:40 + в цитатник

Панель «Фрагменты кода» в Adobe Flash CS6..)

Будем учиться использовать Панель «Фрагметы кода» в Adobe Flash.
Что же это за панель , для чего и как она примеяется?

«Использование фрагментов кода, включенных в среду Flash, облегчает изучение новичками языка ActionScript 3.0. Путем просмотра кода во фрагментах и выполнения настроек, описанных в инструкциях к фрагменту, можно понять структуру и словарь кода.
Данная панель помогает быстро понять и использовать фрагменты кода, а также сохранить собственные фрагменты для применения в будущем.»

1.Откроем Панель.
Окно-Фрагменты кода.Или используем значек(см.скрин)
Для удобства значек можно вывести и закрепить на панельке(см скрин)

2.Рассмотрим из чего она состоит.
Вот так выглядит Панель при открытии

Мы видим папки с названием разделов,если нажать на треугольничек ,папки»раскроются»..

Смотрим далее.На самой панельке видим значки.

При наведении на них мышкой всплывают подсказки.
На скрине слева-добавить в текущий кадр
На скрине справа-скопировать в буфер обмена

3.А теперь на конкретном примере рассмотрим как использовать Панель Фрагменты кода в программе.
Будем делать вот такой эффект вращения.

3.1 Для этого создадим документ AS3.
(Файл-Создать- ActionScript 3.0)
3.2 Импортируем в рабочую область подходящую для вращения картинку.
3.3 Сохраним документ.(Файл-Сохранить как).
Назовем.Укажем куда сохранить.
Я назвала «вращение».Сохранила в заранее созданную для этого проекта папку.
Потом в процессе работы,чтобы фиксировать изменения,достаточно просто»Сохранить».
3.4 Выделяем картинку инструментом Стрелка(V).
Преобразуем в символ(ПКМ-преобразовать в символ или Модификация-Преобразовать в символ).

Я назвала «вращение»(как документ).Вы можете назвать как угодно.Или оставить по-умолчанию(Символ1(2,3,4. ).В конкретном случае это абсолютно не принципиально.

А в Панели Свойства вписываем имя латинскими буквами. У меня-это «rosa».

3.5 Раскроем раздел Анимация- Непрерывное вращение.
При наведении мышкой появляются 2 значка.

Нажав на первый вы увидите окошко с описанием кода.

При нажатии на второй вы увидите окно с инструкциями.
Прочтите их.

Прокрутив вниз, мы видим фрагмент кода,в котором уже прописалось имя экземпляра «rosa»,которое мы ввели ранее в Свойства.
Поменяем скорость вращения на на 2. Жмем — Вставить

Смотрим на временную шкалу.
Фрагмент кода в виде черной полоски»залетает»на временную шкалу и создает новый слой с кодом.
Понаблюдайте за этим действием , забавно.

Если открыть панель Действия(F9),
мы видим код с теми же инструкциями,который программа поместила на верхний слой в 1-ый кадр.

Все,смотрим ,что получилось(CTRL+Enter)
3.6 Сохраняем.Экспортируем.
Файл-Экспорт-Экспотировать ролик

Немножко пофантазировав,у меня получился вот такой результат.
Для тех кому интересно,во вложении исходник fla с кратким описанием.

Что такое код swf_actiongotolabel

Код HTML для вставки флеш мы можем создать сами.

Для этого ссылка должна быть « прямой » (заканчиваться на типичное расширение флеш-файлов * .swf )
Просто копируем адрес файла и ставим в код вместо » ссылка-на-файл «:

Теперь ещё раз по порядку.

1) Копируем вот этот код:

2) Открывем окно создания темы и нажимаем на значок HTML .

Это тот же значок, который вы нажимаете при вставке видео.

3) В открывшиеся окно вставляем скопированный код.

4) Заменяем слова « ссылка на файл » 2 раза на ссылку на флеш.

Моя флешка находится по адресу http://www.pineapple.ru/farb/bufa_boo.swf

Я его взяла из адресной строки браузера, но могут быть и ещё варианты.

5) Обращаю ваше внимание, что в коде HTML присутствуют цифры.

В данном коде это 450 и 300 . Их тоже можно заменить, для того, чтобы увеличить или уменьшить размеры флешки.

Внимание: Умножайте или делите на один коэффициент, а то нарушите пропорции.

6) Далее, нажимаем кнопку « Обновить «.

Получаем жёлтый прямоугольник. Вот это и есть наша флешка.

7) Если ничего больше вставить не нужно (текст или картинку), то нажимаем « Опубликовать «.

Примечание для пользователей браузера Мазила : Для изменения размеров изображения можно цифры в коде HTML не заменять. А просто после нажатия кнопки » Обновить «, когда появится жёлтый прямоугольник, кликнуть по нему и растянуть или сжать, потянув курсором мыши от центра или к центру жёлтого прямоугольника.

И ещё: Скопируйте себе этот код HTML в Word или » Блокнот » и сохраните, чтобы потом долго не искать.

Или можете скачать этот код, сохранённый с расширением txt ЗДЕСЬ.

Вот что получилось.

Для запуска флешки нажмите GO.

Способы «защиты» flash-приложений

Всё описываемое в данной статье ни в коем случае не должно использоваться в целях получения личной выгоды, нарушения авторских прав, лицензионных соглашений и каких-либо законов любых стран. Здесь нет рекламы, всё написано исключительно исходя из собственных предпочтений и опыта. Примеры кода к статье – это всего лишь примеры, набросанные на скорую руку, помните об этом.

— введение

В мире flash (речь, конечно, о клиенте) не существует гарантированной защиты от злоумышленников, можно лишь отсеять совсем незадачливых и усложнить работу тем, кто решит идти до конца. Стремиться стоит к тому, чтобы стоимость и время работы недоброжелателя были как можно выше, а Ваши затраты — как можно меньше. В идеале старайтесь добиться того, чтобы злоумышленнику было проще, быстрее и дешевле купить или написать с нуля, чем обходить Ваши препятствия.

Борьба между системами защиты и системами обхода\снятия защит ведётся постоянно. Это связано с тем, что любому желающему доступна спецификация формата SWF и байткода (тут, здесь и ещё тут), в который компилируется ActionScript3 (далее AS3) код. Это позволяет свободно писать собственные библиотеки и приложения для разбора SWF файлов на составляющие (графику, звуки, байткод и т.д.), и делать что угодно с байткодом, например:

  • писать анализаторы байткода для декомпиляции ABC (ActionScript ByteСode) файлов, которые можно найти в тэгах «DoABC» в скомпилированном AS3 SWF файле (а в AS2 код обычно находится в тэгах «DoAction» и «DoInitAction»);
  • писать приложения, модифицирующие байткод, например, для его обфускации с помощью различных приёмов, которые могут использовать специфику декомпиляции в своих целях;
  • писать приложения, позволяющие изменять (патчить) байткод в уже скомпилированных SWF файлах;
  • модифицировать FP для вывода (трейса) исполняющегося байткода;

В области защиты бывают разные цели и средства. Выбирайте только то, что подходит для Вашего проекта, не занимайтесь лишней работой.

— содержание

— 1. URL-Lock, защита от локального запуска

Цель – заставить SWF файл работать в определенных условиях, например, только под одним или несколькими доменами, либо запретить локальный запуск.
После определения того факта, что SWF запущен не там, где должен бы, можно запрограммировать его поведение как угодно. Вы можете отправлять на сервер неугодные домены\URL (если это не localhost) и заносить в какой-нибудь лог.
Подлинные домены (под которыми должен работать SWF файл) лучше держать в зашифрованном виде или не держать в клиенте вообще (принимать от сервера также в зашифрованном виде).
Рассмотрим несколько способов привязки к доменам и определения локального запуска.

Привязка к доменам с помощью получения текущего URL\домена

Это самый распространённый способ привязки к домену. Для получения текущего URL или домена обычно используют:

а) loaderInfo:

  • root.loaderInfo.url ( _root._url – для AS2) – содержит путь до самого SWF файла, если SWF загружен с помощью другого SWF, то root.loaderInfo.url у загруженного SWF останется прежним
  • root.loaderInfo.loaderURL – содержит путь до самого SWF файла, либо до его загрузчика, если он был загружен с помощью другого SWF файла
  • root.loaderInfo.loader — содержит ссылку на экземпляр класса Loader, либо null, если SWF не был загружен внешним загрузчиком (заметьте, что root.loaderInfo.loader == root.parent , а root.parent == stage , если SWF не имеет загрузчика). Причём, если загрузчик не находится в доверенной зоне (находится в другом SecurityDomain), то при обращении к root.loaderInfo.loader или к root.parent из загружаемого SWF, будет возникать исключение SecurityError, в сообщении которого также будет содержаться ссылка до загрузчика

Пути не изменятся, если SWF встроить в HTML страницу на «неродном» домене без перемещения самого SWF файла.

б) LocalConnection: позволяет получить имя домена, под которым в данный момент запущен SWF файл с помощью LocalConnection.domain .
Если чужой SWF находится в домене, отличном от домена Вашего SWF, и Вы загрузили тот SWF в текущий домен безопасности так:
или с помощью Loader.loadBytes , то LocalConnection.domain загруженного SWF будет содержать домен Вашего SWF.
Пути не изменятся, если SWF встроить в HTML страницу на «неродном» домене без перемещения самого SWF файла.

в) ExternalInterface: позволяет использовать JavaScript (далее JS). Например, путь до текущей страницы, в которую встроен SWF, можно получить с помощью window.location.href . Для вызова JS используйте ExternalInterface.call . Т.к. call в качестве первого параметра принимает название метода, а window.location.href – свойство, то следует использовать toString():
Кстати, домен тоже можно получить через ExternalInterface.call :

ExternalInterface можно использовать и для вызова своих JS функций на той странице, где находится SWF – как изначально существующих, так и созданных Вами с помощью eval:
И не стоит забывать, что этот способ требует выполнения JS, что не всегда возможно.
При попытке обойти с помощью встраивания в HTML страницу на «неродном» домене без перемещения самого SWF файла, выполнение ExternalInterface.call будет генерировать SecurityError.

г) FlashVars: иногда, при размещении SWF в HTML страничке или при загрузке из другого SWF, передают путь до домена и\или иные данные через FlashVars (что на самом деле – плохо, т.к. это явная «дыра» для отвязки от доменов):

FlashVars можно передать в качестве параметра:
или через имя файла:

Дотянуться до FlashVars можно так:
— в AS3 – root.loaderInfo.parameters.var1
— в AS2 – _root.var1

Привязка к доменам без получения текущего URL или домена

Этот способ основан на кроссдоменной политике безопасности. Привязываемый SWF при запуске пытается загрузить по прямому пути «специальный» файл-пустышку с определённого хоста, на котором находится файл crossdomain.xml с разрешением загрузки ресурсов только с доверенных доменов, на одном из которых и должен находиться SWF. Соответственно, если «ворованный» SWF файл будет обращаться к «специальному» файлу с домена, не прописанного в crossdomain.xml, произойдет нарушение изолированной среды (sandbox security violation) и «специальный» файл не загрузится. Также при этом сгенерируется исключение и сработает событие SecurityErrorEvent.SECURITY_ERROR у экземпляра класса LoaderInfo ( Loader.contentLoaderInfo ). Это позволит определить то, что SWF находится не там, где должен бы.
К «специальному» файлу следует обращаться по прямому пути, чтобы предотвратить его подмену.

Определение локального запуска

Локальный запуск SWF можно определить с помощью получения ссылки на SWF или HTML и проверки её на наличие подстроки «file://».
Если SWF запущен вне HTML, то метод ExternalInterface.call вернёт null.
Также можно проверить тип FP, в котором работает SWF, с помощью Capabilities.playerType :

  • «ActiveX» – при проигрывании через ActiveX FP, который, например, используется в IE
  • «Desktop» – для среды выполнения Adobe AIR (кроме SWF-содержимого, загруженного HTML страницей, со свойством Capabilities.playerType имеющим значение «PlugIn»)
  • «External» – при проигрывании через внешний FP или при запуске из-под Flash Professional IDE
  • «PlugIn» – при проигрывании через браузерный плагин (и для SWF-содержимого, загруженного HTML страницей в AIR приложении)
  • «StandAlone» – при проигрывании через автономный FP (при запуске локального SWF файла в браузерах, значение Capabilities.playerType != «StandAlone» )

Ещё один способ – с помощью сравнения Security.sandboxType с Security.REMOTE .

Все эти приёмы имеют свои преимущества и недостатки — некоторые не требуют сервера, но требуют перекомпиляции SWF файла при изменении доменов, к которым должна осуществляться привязка, а некоторые — наоборот.
В кодах к статье (ссылка на архив есть в конце статьи), в папке «1-URL Lock», вы найдёте пример с реализацией некоторых из описанных методов и пару примеров патчей одного из методов.
Внимание! Большинство приёмов URL-Lock можно обойти, работая из-под локального сервера, такого, как Denwer или XAMPP.

— 2. Переменные, ресурсы и классы

Обычно о переменных и ресурсах заботятся при написании игр. Конечно, лучше держать важную логику, данные и переменные вне клиента, но, увы, такая возможность есть не всегда, поэтому, иногда следует думать о том, как сократить количество лазеек для жульничества.
Подменой ресурсов и классов пользуются не так часто, как редактированием переменных, но всё-таки пользуются, поэтому, я попробую рассказать, как это делают и как этому можно помешать (защититься от этого невозможно).

Защита переменных

Переменные надо прятать и защищать от изменений. Наиболее простой способ скрытия – написание своих «обёрток» вокруг базовых классов.
Например, CryptInt, CryptString и т.д. В самих классах можно написать методы для получения и отдачи значения, шифруя или расшифровывая его, что спрячет переменную в памяти. Взгляните на реализацию классов CryptInt и CryptString в кодах к статье, в папке «2-Memory&Domain\MemoryExample».
Также, для сокрытия значений переменных, можно разбивать их на составляющие, перемешивать, сдвигать и т.д. Можно даже попробовать написать некий конвейер, который будет перемещать скрываемое значение из одних переменных в другие, освобождая использованные переменные для GC (Garbage Collector). В качестве «временных хранилищ» для таких вот перерабатываемых переменных, можно использовать ByteArray, возможно, с привлечением «Алхимии» (fastmem из Azoth, Memory из Apparat).
А чтобы переменные не смогли поменять, даже если их найдут, то можно использовать, например, сравнение значения переменной с эталоном. Причём сравнение можно производить как при изменении переменной или обращении к ней, так и через заданные промежутки времени.

Подмена ресурсов

Подменить SWF целиком, либо подгружаемые внешние файлы можно в кэше браузера. В фальшивом SWF файле, или в подменённом ресурсе могут быть произведены любые изменения графики (размеры, прозрачность, сдвиг, частота кадров и т.д.) и кода (который делает то, чего бы вам меньше всего хотелось).
Чтобы усложнить задачу недоброжелателю (гарантированно защититься от подмены нельзя), следует проверять подлинность загружаемых данных и самого себя – можно, например, хранить MD5 и сравнивать при загрузке, причем MD5 хранить где-нибудь подальше и в зашифрованном виде.
Если SWF общается с сервером – производить скрытые проверки – отсылать на сервер MD5 загружаемых ресурсов, например.

Если есть возможность, то, для предотвращения подмены, внешние SWF и иные ресурсы можно хранить в теле основного SWF в зашифрованном виде и загружать их с помощью Loader.loadBytes , предварительно достав их из себя. Loader.loadBytes не сохраняет загружаемые данные в кэш браузера, но, в то же время, Ваш главный SWF будет закэширован. Подробнее об использовании Loader.loadBytes в таких случаях написано в одном из следующих разделов статьи.
Также можно запрашивать ресурсы и другие SWF файлы с сервера, лежащие в зашифрованном виде, далее расшифровывать их и загружать через Loader.loadBytes .

Переопределение классов

Скажу сразу, что гарантированно от этого защититься также не получится.
Подменять классы можно с помощью загрузки целевого SWF в ApplicationDomain загрузчика. Чтобы это сделать, можно написать загрузчик, содержащий класс с таким же именем, что и у подменяемого, и загрузить SWF в свой домен:
Таким образом, загружаемый SWF вынужден будет «общаться» с классом из своего загрузчика. Примеры реализации Вы сможете посмотреть в кодах к статье, в папке «2-Memory&Domain\applicationDomain». Вы встретите там примеры подмены классов с помощью загрузки в дочерний и в свой домен. В «жертве» Вы сможете найти несколько вариантов проверки на загруженность (которые обходятся заменой класса, в котором они содержатся).
Можно попытаться воспрепятствовать этому, загружая основной SWF через собственный загрузчик в новый ApplicationDomain:
и установив прочную связь между загрузчиком и основным SWF так, чтобы их было очень трудно «разлучить». Однако, если подменят загрузчик и сумеют эту связь сохранить, то эти усилия будут напрасны.

Защищайте только действительно важные переменные и данные, комбинируйте способы.
По возможности, выносите логику работы с важными переменными на сервер, а ресурсы подписывайте и проверяйте на изменения.

— 3. Водяные знаки (watermarks)

Могут использоваться для защиты от копирования, нелегального использования, а также в рекламных целях.

Вот некоторые их типы:

  1. Хорошо заметные элементы: текст, логотип, изображение и т.д.
    Если метка «впаяна» (относится как просто к изображениям, так и к графике в SWF), то её удаление придётся осуществлять вручную, редактируя данные, которые подверглись применению метки, что может оказаться очень сложной или вовсе невыполнимой задачей.
    Если же метка лежит отдельно (либо добавляется программно), например, на самом верхнем «слое» в SWF, то шансы аккуратно её удалить гораздо выше.
  2. Скрытые элементы. Они могут быть где угодно. От таких водяных знаков зачастую невозможно избавиться, т.к. никто кроме их создателей не будет знать, где искать. Такие метки должны быть уникальными, дабы была возможность доказать в суде, что это действительно метки, и что их невозможно повторить.

Этот пункт получился весьма ущербным, однако, сказать тут больше особо нечего, просто не забывайте, что такие средства защиты тоже существуют.

— 4. «Упаковывание» SWF

Совсем спрятать SWF невозможно, но есть как минимум один, весьма известный способ, который может немного усложнить поиск искомого SWF незадачливым злоумышленникам.

Вы можете добавить SWF в свой flex или flash проект с помощью тэга Embed, например, так:
Добавленный таким образом файл (это может быть любой двоичный файл или несколько файлов, если тэгов Embed будет несколько) помещается в тэг DefineBinaryData.
Далее можно загрузить «упакованный» таким образом файл с помощью Loader.loadBytes примерно так:
Существует масса инструментов для разбора SWF файлов и манипуляции с тэгами, благодаря которым существует возможность заменять или добавлять тэг DefineBinaryData.
Зная всё это, можно набросать свой простой «упаковщик» для автоматизации процесса. Перед оборачиванием, SWF можно как-нибудь преобразовать, например, обработав простым и быстрым симметричным xor’ом, а в загрузчике (который будет содержать «упакованный» SWF) написать код, который будет расшифровывать хранящийся в нём SWF, и уже затем его загружать. Простое «шифрование» с помощью xor нужно лишь для защиты от автоматической обработки декомпиляторами, чтобы SWF файл не находился внутри загрузчика в «чистом виде», более сложное шифрование бессмысленно.
Бывает, файлы «внедряют» и другими способами, например, в виде BitmapData, а также, создают несколько уровней вложенности.

Пример реализации простейшего упаковщика Вы сможете найти в кодах к статье, в папке «3-SWFPacker». Также там лежат два файла: orig.swf и packed.swf – можете попробовать их декомпилировать и сравнить.
Этот способ обходится, как минимум, двумя путями:
— исследование алгоритма расшифровщика в загрузчике и написание собственного расшифровщика (трудоёмко, особенно при большой вложенности загрузчиков)
— сохранение участка памяти, в котором находится уже распакованный и загруженный в FP SWF файл (просто и быстро, особенно, если не использованы средства защиты от сохранения из памяти, о которых написано ниже)

— 5. Динамическая генерация кода и редактирование SWF

Меня уже неоднократно спрашивали – возможно ли во flash в реальном времени генерировать код или создавать и редактировать другие SWF файлы? Ответ – да, это возможно!
Что касается кода, попробуйте AS3Commons ByteCode. Этот проект позволит Вам собирать и выполнять в реальном времени байткод.
Вы можете создавать классы с различными методами и свойствами с нуля, или наследуясь от других классов. Тела методов, например, могут описываются с помощью байткода линейно — methodBuilder.addOpcode(Opcode.getlocal_0) , или сразу блоками:
Вы можете загрузить сгенерированный код в AVM с помощью abcBuilder.buildAndLoad() .
Также для манипуляций с байткодом Вы можете попробовать as3abc, который, по словам автора, является частичным портом замечательного framework’а Apparat от небезызвестного Joa Ebert’а.
Если же Вы мечтаете о динамическом исполнении скрипта, а не байткода, то посмотрите на as3scriptinglib. Используя этот проект, Вы сможете в реальном времени компилировать и выполнять ActionScript 3/ECMAScript скрипты, включая JavaScript. Посмотреть на то, как это работает можно во flex демо-приложении. К сожалению, проект давно не обновляется.

Илон Маск рекомендует:  Файловые операции с использованием стандартного диалога с анимацией копирование файлов

Для экспериментов с самим SWF файлом и его структурой, попробуйте as3swf или swfassist.

Возможность генерации кода на лету, а также возможности редактирования и создания SWF в реальном времени, позволяют создавать различные сложные сценарии и приёмы для запутывания злоумышленника и скрытия Вашего кода. Вот, например первые 3 приёма, что пришли мне на ум:

  1. Генерировать и исполнять код\байткод на клиентской стороне по частям, приходящим от сервера, оставляя недоброжелателям в оригинальном SWF из всего кода, лишь то, что Вам не жалко им оставить (код свободных библиотек, кнопок и т.д.) + код расшифровщика и «строителя» уже финального кода.
  2. Собирать SWF по частям на клиентской стороне, аналогично трюку с кодом – можно собирать по тэгам, получая их от сервера, или, распаковывая поодиночке из зашифрованных данных, упакованных в загрузчике.
  3. Создавать самомодифицирующийся в процессе исполнения код, который, например, будет по определённым правилам или шаблонам генерировать одни и те же методы разными способами. Например, i++ можно реализовать как i+=1 (и это будет разный байткод, по крайней мере, он сейчас разный, в FP 10.1), также циклы могут быть реализованы по-разному, и т.д.
    Возможно, удастся так исхитриться, чтобы сгенерированный код изменял те методы, которые его сгенерировали. Например, чтобы в следующей итерации их выполнения сгенерировались уже другие классы и методы, тем самым значительно усложняя и запутывая код, чтобы, в случае его получения злоумышленником, последнему пришлось потратить как можно больше времени на разбор всей этой «каши».
    Предполагаю, что это довольно сложный (или даже невозможный во flash) трюк. Реально работающей реализации этой идеи на flash я пока не встречал. Если Вы встречали – то подскажите где посмотреть, буду рад изучить.

— 6. Запутывание кода (obfuscation) и скрытие данных

Сначала об обфускации. Ей могут подвергаться как исходный так и скомпилированный в байткод код. Обфускация исходного кода не так удобна и эффективна, запутывание байткода выглядит куда как привлекательней, т.к. исходный код должен удовлетворять требованиям компилятора, чего не скажешь о байткоде, в котором, к тому же, есть куда больший простор для проявления фантазии и смекалки.
Байткод обфускация может включать в себя переименование элементов в бессмысленные и недопустимые для компилятора имена, использование некоторых анти-декомпиляторских трюков, скрытие и «замусоривание» кода и др.

Переименование — это, пожалуй, единственный необратимый и 100% работающий способ хоть что-то спрятать во flash. Суть метода заключается в изменении у методов, свойств, пакетов и других элементов имён, которые сохраняются после компиляции, но не используются при выполнении кода. Автоматически восстановить оригинальные имена невозможно, придётся это делать вручную, догадываясь о них по смыслу во время исследования кода. После обфускации новые имена могут содержать недопустимые символы или зарезервированные слова, что не позволит с лёгкостью перекомпилировать и использовать код, полученный после декомпиляции.

Иногда при обфускации байткода расставляют «ловушки» для декомпиляторов, основанные на том, что декомпиляторы анализируют код комплексно, блоками, в отличие от FP, который исполняет его линейно, например:

  • Некорректный «мёртвый код» — создаётся искусственный условный переход, который всегда отрабатывает только одну ветку. Таким образом, во второй ветке мы имеем код, который никогда не выполнится, но будет обрабатываться декомпиляторами. И если там что-то непредсказуемое (а мы можем сделать там что угодно, т.к. FP до туда никогда не доберётся), то некоторые декомпиляторы могут повести себя необычно – например, аварийно завершиться.
  • Непредсказуемые байты в тех областях, которые игнорирует FP, но которые не всегда игнорируют и корректно обрабатывают декомпиляторы.

Кроме того, код можно просто «замусорить», увеличив его в объёмах и снизив его читабельность. Это может негативно сказаться на производительности.

Скрытие данных можно осуществлять разными способами, например:

  • Скрытие в SWF тэгах. Как я уже говорил, можно использовать flex-тэг Embed для встраивания любых файлов в SWF тэг DefineBinaryData, однако, можно создать и SWF тэг своего типа (FP такие тэги просто пропускает) с любыми данными, и затем извлекать их во время выполнения с помощью самораспарсивания.
    Пример есть в файлах к статье, в папке «4-CustomTag» — там находится проект на основе уже упомянутой библиотеки as3swf (изменён класс com.codeazur.as3swf.factories.SWFTagFactory и добавлен com.codeazur.as3swf.tags.TagCustom ). При запуске, SWF проверит — нет ли уже в нём нового тэга, и если есть — то выведет текст из него в текстовое поле, а если тэг не найдётся, то создаст сам в своей копии новый тэг со строкой, загрузит получившийся SWF в себя же с помощью Loader.loadBytes() и ещё предложит сохранить его в новый SWF файл.
  • Пользовательские мета данные. Для внедрения своих метаданных, сначала их необходимо объявить в коде (можно перед объявлением класса, метода, переменной):
    А затем добавить их названия в «Additional compiler arguments» таким образом: -keep-as3-metadata+=FocusMeta,Cool. После этого, Вы сможете обращаться к своим мета данным через XML, который можно получить с помощью describeType() :

Некоторые декомпиляторы и дизассемблеры позволяют с лёгкостью находить и исследовать пользовательские тэги и метаданные.

Для того, чтобы самостоятельно научиться создавать качественные помехи декомпиляторам, Вам придётся изучить то, как декомпиляторы исследуют байткод и SWF в целом. Но помните — разработчики декомпиляторов постоянно развивают свои продукты и если Ваш SWF с хитрыми приёмами попадёт к ним, то вскоре эти приёмы могут перестать работать.
Существуют утилиты для защиты SWF, применяющие только уловки против декомпиляторов или методики «упаковки», без обфускации имён, что позволяет получить чуть ли ни оригинальный исходный код, с помощью качественных публичных или собственных декомпиляторов, который компилируется без ошибок и хорошо читается. Ниже я расскажу о «правильных» инструментах, на которые следует обратить внимание.

— 7. Защита от сохранения SWF файла из памяти

Гарантированно защититься от дампа из памяти нельзя. Однако, есть несложный приём, который может усложнить процесс – можно создать множество фальшивых SWF-заголовков (именно по ним обычно ищут SWF файлы в памяти), которые помогут оригинальному SWF затеряться среди них. Чтобы Ваш SWF файл не выделялся на фоне других, можно создать массу фальшивых заголовков с размерами = размерам Вашего SWF файла.
Чтобы заголовки были видны в памяти, достаточно записать их в ByteArray. Вот пример реализации этого способа, вытянутый из загрузчика одного из протекторов:
Как Вы могли догадаться, swfBytes – это массив байт с началом «шаблонного» заголовка и «настройками» для создания «фальшивых» заголовков, а в цикле длина у «шаблонных» заголовков заполняется случайным значением в заданном диапазоне.

— 8. Инструментарий исследователя flash

Основываясь на собственном опыте, я бы порекомендовал эти инструменты (цены указаны на конец 2010 года):

Декомпиляторы:

  • Action Script Viewer (ASV) – умно анализирует код, строит timeline, видит все тэги, очень многое умеет. Стоимость лицензии на одного пользователя – $80.
  • AS3 Sorcerer (от разработчика ASV) – декомпилирует только код, для анализа кода используется движок ASV, работает быстро и очень качественно. Если Вы приобретали ASV в 2010 году, то лицензию на AS3 Sorcerer Вам предоставят бесплатно. Стоимость лицензии с бесплатными обновлениями на 3 месяца — $22.
  • Sothink SWF Decompiler – можно пользоваться на незащищённых проектах, если под рукой не оказалось ASV. Стоимость лицензии — $79.99.

Дизассемблеры (для работы с байткодом):

  • ASV и Sothink умеют показывать байткод, но этого не всегда достаточно.
  • Nemo440 – «Advanced ActionScript 3/ABC2/Flex 2/Flex 3/Flex 4/AIR disassembler». Бесплатен.
  • Yogda – «AVM2 bytecode workbench» – позволяет ассемблировать, патчить байткод, есть встроенная документация по байткоду, иногда падает при анализе защищённых SWF, однако периодически обновляется и обрастает функционалом. Бесплатен.
  • RABCDAsm – «Robust ABC (ActionScript Bytecode) [Dis-]Assembler» – замечательный консольный ассемблер\дизассемблер байткода. Бесплатен (+доступен исходный код).

Протекторы\обфускаторы:

  • secureSWF — из всей массы продуктов этой категории, что мне удалось попробовать, он единственный сумел качественно позаботиться о целостности и работоспособности всех подопытных приложений и при этом качественно выполнить свою основную задачу. Конечно же, не бывает идеальных продуктов в этой области, но secureSWF даёт очень хороший контроль над всем процессом защиты и позволяет тонко настроить различные параметры. Например, Вы можете настроить переопределяющие правила для переименования, установить уровень «замусоривания» кода и т.д. В самой дорогой редакции, Вы получаете также возможность «упаковывать» SWF или привязать её к домену. К сожалению, цена на этот продукт весьма высока: стоимость Standard редакции составляет $199.
  • irrFuscator — может Вам приглянуться за его возможности по обфускации исходного кода перед компиляцией, однако, я считаю, что такой подход значительно хуже по своему качеству, чем байткод обфускация, т.к. не позволяет использовать запрещённые компилятором символы и различные трюки с байткодом. Этот продукт также умеет работать на уровне байткода, но проекты, которые я пробовал им «накрывать» довольно часто оставались неработоспособными. Стоимость Standard редакции составляет 79 евро.
  • OBFU – пожалуй, это самый дорогой обфускатор для flash, который мне доводилось видеть ( стоимость – 1500 евро ). Автор обфускатора — Николя Канасье, создатель haXe. Не ясно – поддерживает ли он AS3, т.к. примеры, выложенные на сайте проекта, написаны на as2 и датированы 2005 годом. К сожалению, попробовать его в действии мне пока не довелось, поэтому если вдруг Вы его когда-то пробовали, то не поленитесь, напишите отзыв о нём в комментариях.

Также прошу обратить внимание, что Amayeta SWF Encrypt, DComSoft SWF Protector, Mochi Encryption – это не то, чем Вам стоило бы «защищать» свои проекты (на данный момент), вы потратите Ваши деньги на бесполезную защиту.
Более того, Вы можете и самостоятельно реализовать простейшую обфускацию, как, например, это сделано в примере от makc3d.

Депротекторы\декрипторы и т.д.:

  • SWF Reader – проект одного польского умельца — многофункциональный редактор, позволяет работать со структурами, тэгами и т.д. Также имеет встроенные декрипторы\депротекторы для некоторых известных продуктов (в частности, распаковщики для doSWF, secureSWF). Cтоимость лицензии – 10 евро.
  • SWF Decrypt – поможет Вам избавиться от Amayeta SWF Encrypt и DComSoft SWF Protector (Mochi Encryption также в планах разработчика). Бесплатен.

Разное:

  • SWiX – отличная утилита для редактирования тэгов SWF файла в удобном XML представлении. Бесплатна.

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

— эпилог

Резюмируя, можно сказать, что, умело пользуясь подручными средствами для защиты своих проектов, Вы сможете отсеять некоторую аудиторию злоумышленников. Однако, если за исследование вашего SWF файла возьмётся профессионал, то, вероятно, он не остановится перед препятствиями и доведёт дело до конца, особенно, если он мотивирован интересной задачей или достаточным денежным вознаграждением. Поэтому всегда здраво оценивайте свой вклад в защиту своих проектов – не тратьте на это слишком много времени и средств, если это того не стоит.
И ещё — не компилируйте SWF с отладочной информацией, т.к. она содержит множество полезных потенциальному взломщику данных, не говоря уже о снижении производительности.

Спасибо, что прочитали этот нелёгкий для восприятия материал. Надеюсь, Вы нашли что-то новое для себя. Любые пожелания, замечания и конструктивные предложения Вы можете оставить в комментариях, буду Вам весьма благодарен.

Материалы для изучения и источники информации для этой статьи (беспорядочно):

  1. Презентация Claus Wahlers «Hacking SWF» с FITC Amsterdam 2010.
  2. Доклад Симонова Валентина (valyard) «Кто и как взламывает наши игры» с FlashGAMM 2010
  3. Статья Никиты Лещенко на английском о том, как по-простому защитить ресурсы и код, используя шифрование.
  4. Статья от romamik «Защита своими руками».
  5. Статья от Nautilus «Как защитить вашу игру от ребрендинга».
  6. Статья от puzzlesea «Robolander, 25 days later. Защита, борьба с китайцами».
  7. Статья от flashco «Обфускаторы: от бесплатного до €1500».
  8. Alexis’ SWF Reference — описание тэгов всех версий формата, описание заголовка SWF файла и многое другое.
  9. OWASP – в некотором роде вики по вопросам безопасности, относящихся к flash (ссылки на статьи, инструменты и т.д.).
  10. Очень впечатляющая статья о модели безопасности во flash от senocular под названием «Security Domains, Application Domains, and More in ActionScript 3.0».
  11. Статьи от Adobe о безопасности во flash.
  12. Официальная статья от Adobe о безопасности во FP 10 (White Paper).

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

Что такое Action.swf и как его исправить?

Совместима с Windows XP, Vista, 7, 8 и 10

Обзор Action.swf

Что такое Action.swf?

Action.swf представляет собой разновидность файла SWF, связанного с Sun Solutions CD, который разработан Sun Microsystems для ОС Windows. Последняя известная версия Action.swf: 1.0.0.0, разработана для Windows 98 98. Данный файл SWF имеет рейтинг популярности 1 звезд и рейтинг безопасности «Неизвестно».

Почему у меня наблюдаются ошибки в файлах типа SWF?

Если Windows не может нормально загрузить файл Action.swf, или файл SWF заражен вирусом или вредоносным ПО, вы увидите сообщение об ошибке. Для получения дополнительной информации см. «Причины ошибок Action.swf» ниже.

В каких случаях появляются ошибки в файлах типа SWF?

Ошибки SWF, например, связанные с action.swf, чаще всего появляются во время запуска компьютера, запуска программы или при попытке использования специфических функций в вашей программе (например, печать).

Распространенные сообщения об ошибках в Action.swf

Наиболее распространенные ошибки action.swf, которые могут возникнуть на компьютере под управлением Windows, перечислены ниже:

  • «Ошибка в файле Action.swf.»
  • «Отсутствует файл Action.swf.»
  • «Action.swf не найден.»
  • «Не удалось загрузить Action.swf.»
  • «Не удалось зарегистрировать action.swf.»
  • «Ошибка выполнения: action.swf.»
  • «Ошибка загрузки action.swf.»

Такие сообщения об ошибках SWF могут появляться в процессе установки программы, когда запущена программа, связанная с action.swf (например, Sun Solutions CD), при запуске или завершении работы Windows, или даже при установке операционной системы Windows. Отслеживание момента появления ошибки action.swf является важной информацией при устранении проблемы.

Причины ошибок в файле Action.swf

Проблемы Action.swf могут быть отнесены к поврежденным или отсутствующим файлам, содержащим ошибки записям реестра, связанным с Action.swf, или к вирусам / вредоносному ПО.

Более конкретно, данные ошибки action.swf могут быть вызваны следующими причинами:

  • Поврежденные ключи реестра Windows, связанные с action.swf / Sun Solutions CD.
  • Вирус или вредоносное ПО, которые повредили файл action.swf или связанные с Sun Solutions CD программные файлы.
  • Другая программа злонамеренно или по ошибке удалила файлы, связанные с action.swf.
  • Другая программа находится в конфликте с Sun Solutions CD и его общими файлами ссылок.
  • Поврежденная загрузка или неполная установка программного обеспечения Sun Solutions CD.

Как исправить ошибки в Action.swf

Ниже описана последовательность действий по устранению ошибок, призванная решить проблемы action.swf. Данная последовательность приведена в порядке от простого к сложному и от менее затратного по времени к более затратному, поэтому мы настоятельно рекомендуем следовать данной инструкции по порядку, чтобы избежать ненужных затрат времени и усилий.

Пожалуйста, учтите: Нажмите на изображение [ ] , чтобы развернуть инструкции по устранению проблем по каждому из шагов ниже. Вы также можете использовать изображение [ ], чтобы скрывать инструкции по мере их выполнения.

Шаг 1: Исправить записи реестра, связанные с Sun Solutions CD

Иногда ошибки action.swf и другие системные ошибки SWF могут быть связаны с проблемами в реестре Windows. Несколько программ может использовать файл action.swf, но когда эти программы удалены или изменены, иногда остаются «осиротевшие» (ошибочные) записи реестра SWF.

В принципе, это означает, что в то время как фактическая путь к файлу мог быть изменен, его неправильное бывшее расположение до сих пор записано в реестре Windows. Когда Windows пытается найти файл по этой некорректной ссылке (на расположение файлов на вашем компьютере), может возникнуть ошибка action.swf. Кроме того, заражение вредоносным ПО могло повредить записи реестра, связанные с Sun Solutions CD. Таким образом, эти поврежденные записи реестра SWF необходимо исправить, чтобы устранить проблему в корне.

Редактирование реестра Windows вручную с целью удаления содержащих ошибки ключей action.swf не рекомендуется, если вы не являетесь специалистом по обслуживанию ПК. Ошибки, допущенные при редактировании реестра, могут привести к неработоспособности вашего ПК и нанести непоправимый ущерб вашей операционной системе. На самом деле, даже одна запятая, поставленная не в том месте, может воспрепятствовать загрузке компьютера!

В связи с подобным риском мы настоятельно рекомендуем использовать надежные инструменты очистки реестра, такие как WinThruster (разработанный Microsoft Gold Certified Partner), чтобы просканировать и исправить любые проблемы, связанные с action.swf. Используя очистку реестра, вы сможете автоматизировать процесс поиска поврежденных записей реестра, ссылок на отсутствующие файлы (например, вызывающих ошибку action.swf) и нерабочих ссылок внутри реестра. Перед каждым сканированием автоматически создается резервная копия, позволяющая отменить любые изменения одним кликом и защищающая вас от возможного повреждения компьютера. Самое приятное, что устранение ошибок реестра может резко повысить скорость и производительность системы.

Предупреждение: Если вы не являетесь опытным пользователем ПК, мы НЕ рекомендуем редактирование реестра Windows вручную. Некорректное использование Редактора реестра может привести к серьезным проблемам и потребовать переустановки Windows. Мы не гарантируем, что неполадки, являющиеся результатом неправильного использования Редактора реестра, могут быть устранены. Вы пользуетесь Редактором реестра на свой страх и риск.

Перед тем, как вручную восстанавливать реестр Windows, необходимо создать резервную копию, экспортировав часть реестра, связанную с action.swf (например, Sun Solutions CD):

  1. Нажмите на кнопку Начать.
  2. Введите «command» в строке поиска. ПОКА НЕ НАЖИМАЙТЕENTER!
  3. Удерживая клавиши CTRL-Shift на клавиатуре, нажмите ENTER.
  4. Будет выведено диалоговое окно для доступа.
  5. Нажмите Да.
  6. Черный ящик открывается мигающим курсором.
  7. Введите «regedit» и нажмите ENTER.
  8. В Редакторе реестра выберите ключ, связанный с action.swf (например, Sun Solutions CD), для которого требуется создать резервную копию.
  9. В меню Файл выберите Экспорт.
  10. В списке Сохранить в выберите папку, в которую вы хотите сохранить резервную копию ключа Sun Solutions CD.
  11. В поле Имя файла введите название файла резервной копии, например «Sun Solutions CD резервная копия».
  12. Убедитесь, что в поле Диапазон экспорта выбрано значение Выбранная ветвь.
  13. Нажмите Сохранить.
  14. Файл будет сохранен с расширением .reg.
  15. Теперь у вас есть резервная копия записи реестра, связанной с action.swf.

Следующие шаги при ручном редактировании реестра не будут описаны в данной статье, так как с большой вероятностью могут привести к повреждению вашей системы. Если вы хотите получить больше информации о редактировании реестра вручную, пожалуйста, ознакомьтесь со ссылками ниже.

Мы не несем никакой ответственности за результаты действий, совершенных по инструкции, приведенной ниже — вы выполняете эти задачи на свой ​​страх и риск.

Шаг 2: Проведите полное сканирование вашего компьютера на вредоносное ПО

Есть вероятность, что ошибка action.swf может быть связана с заражением вашего компьютера вредоносным ПО. Эти вредоносные злоумышленники могут повредить или даже удалить файлы, связанные с SWF. Кроме того, существует возможность, что ошибка action.swf связана с компонентом самой вредоносной программы.

Совет: Если у вас еще не установлены средства для защиты от вредоносного ПО, мы настоятельно рекомендуем использовать Emsisoft Anti-Malware (скачать). В отличие от других защитных программ, данная программа предлагает гарантию удаления вредоносного ПО.

Шаг 3: Очистить систему от мусора (временных файлов и папок) с помощью очистки диска (cleanmgr)

Со временем ваш компьютер накапливает ненужные файлы в связи с обычным интернет-серфингом и повседневным использованием компьютера. Если такие ненужные файлы иногда не удалять, они могут привести к снижению быстродействия Sun Solutions CD или к ошибке action.swf, возможно вследствие конфликтов файлов или перегрузки жесткого диска. Удаление таких временных файлов при помощи утилиты Очистка диска может не только устранить ошибку action.swf, но и существенно повысить быстродействие вашего компьютера.

Совет: Хотя утилита Очистки диска является прекрасным встроенным инструментом, она удаляет не все временные файлы с вашего компьютера. Другие часто используемые программы, такие как Microsoft Office, Firefox, Chrome, Live Messenger, а также сотни других программ не поддаются очистке при помощи программы Очистка диска (включая некоторые программы Sun Microsystems).

Из-за недостатков утилиты Windows Очистка диска (cleanmgr) мы настоятельно рекомендуем использовать специализированное программное обеспечение очистки жесткого диска / защиты конфиденциальности, например WinSweeper (разработано Microsoft Gold Partner), для очистки всего компьютера. Запуск WinSweeper раз в день (при помощи автоматического сканирования) гарантирует, что ваш компьютер всегда будет чист, будет работает быстро и без ошибок action.swf, связанных с временными файлами.

Как запустить Очистку диска (cleanmgr) (Windows XP, Vista, 7, 8 и 10):

  1. Нажмите на кнопку Начать.
  2. Введите «command» в строке поиска. ПОКА НЕ НАЖИМАЙТЕENTER!
  3. Удерживая клавиши CTRL-Shift на клавиатуре, нажмите ENTER.
  4. Будет выведено диалоговое окно для доступа.
  5. Нажмите Да.
  6. Черный ящик открывается мигающим курсором.
  7. Введите «cleanmgr» и нажмите ENTER.
  8. Программа Очистка диска приступит к подсчету занятого места на диске, которое вы можете освободить.
  9. Будет открыто диалоговое окно Очистка диска, содержащее флажки, которые вы можете выбрать. В большинстве случаев категория «Временные файлы» занимает большую часть дискового пространства.
  10. Установите флажки напротив категорий, которые вы хотите использовать для очистки диска, и нажмите OK.

Шаг 4: Обновите драйверы устройств на вашем компьютере

Ошибки Action.swf могут быть связаны с повреждением или устареванием драйверов устройств. Драйверы с легкостью могут работать сегодня и перестать работать завтра по целому ряду причин. Хорошая новость состоит в том, что чаще всего вы можете обновить драйверы устройства, чтобы устранить проблему с SWF.

В связи с временными затратами и общей сложностью обновления драйверов мы настоятельно рекомендуем использовать утилиту обновления драйверов, например DriverDoc (разработана Microsoft Gold Partner), для автоматизации этого процесса.

Пожалуйста, учтите: Ваш файл action.swf может и не быть связан с проблемами в драйверах устройств, но всегда полезно убедиться, что на вашем компьютере установлены новейшие версии драйверов оборудования, чтобы максимизировать производительность вашего ПК.

Шаг 5: Используйте Восстановление системы Windows, чтобы «Отменить» последние изменения в системе

Восстановление системы Windows позволяет вашему компьютеру «отправиться в прошлое», чтобы исправить проблемы action.swf. Восстановление системы может вернуть системные файлы и программы на вашем компьютере к тому времени, когда все работало нормально. Это потенциально может помочь вам избежать головной боли от устранения ошибок, связанных с SWF.

Пожалуйста, учтите: использование восстановления системы не повлияет на ваши документы, изображения или другие данные.

Чтобы использовать Восстановление системы (Windows XP, Vista, 7, 8 и 10):

  1. Нажмите на кнопку Начать.
  2. В строке поиска введите «Восстановление системы» и нажмите ENTER.
  3. В окне результатов нажмите Восстановление системы.
  4. Введите пароль администратора (при появлении запроса).
  5. Следуйте инструкциям Мастера для выбора точки восстановления.
  6. Восстановить ваш компьютер.

Шаг 6: Удалите и установите заново программу Sun Solutions CD, связанную с Action.swf

Инструкции для Windows 7 и Windows Vista:

  1. Откройте «Программы и компоненты», нажав на кнопку Пуск.
  2. Нажмите Панель управления в меню справа.
  3. Нажмите Программы.
  4. Нажмите Программы и компоненты.
  5. Найдите Sun Solutions CD в столбце Имя.
  6. Нажмите на запись Sun Solutions CD.
  7. Нажмите на кнопку Удалить в верхней ленте меню.
  8. Следуйте инструкциям на экране для завершения удаления Sun Solutions CD.

Инструкции для Windows XP:

  1. Откройте «Программы и компоненты», нажав на кнопку Пуск.
  2. Нажмите Панель управления.
  3. Нажмите Установка и удаление программ.
  4. Найдите Sun Solutions CD в списке Установленные программы.
  5. Нажмите на запись Sun Solutions CD.
  6. Нажмите на кнопку Удалить справа.
  7. Следуйте инструкциям на экране для завершения удаления Sun Solutions CD.

Инструкции для Windows 8:

  1. Установите указатель мыши в левой нижней части экрана для показа изображения меню Пуск.
  2. Щелкните правой кнопкой мыши для вызова Контекстного меню Пуск.
  3. Нажмите Программы и компоненты.
  4. Найдите Sun Solutions CD в столбце Имя.
  5. Нажмите на запись Sun Solutions CD.
  6. Нажмите Удалить/изменить в верхней ленте меню.
  7. Следуйте инструкциям на экране для завершения удаления Sun Solutions CD.

После того, как вы успешно удалили программу, связанную с action.swf (например, Sun Solutions CD), заново установите данную программу, следуя инструкции Sun Microsystems.

Совет: Если вы абсолютно уверены, что ошибка SWF связана с определенной программой Sun Microsystems, удаление и повторная установка программы, связанной с action.swf с большой вероятностью решит вашу проблему.

Шаг 7: Запустите проверку системных файлов Windows («sfc /scannow»)

Проверка системных файлов представляет собой удобный инструмент, включаемый в состав Windows, который позволяет просканировать и восстановить поврежденные системные файлы Windows (включая те, которые имеют отношение к action.swf). Если утилита проверки системных файлов обнаружила проблему в SWF или другом важном системном файле, она предпримет попытку заменить проблемные файлы автоматически.

Чтобы запустить проверку системных файлов (Windows XP, Vista, 7, 8 и 10):

  1. Нажмите на кнопку Начать.
  2. Введите «command» в строке поиска. ПОКА НЕ НАЖИМАЙТЕENTER!
  3. Удерживая клавиши CTRL-Shift на клавиатуре, нажмите ENTER.
  4. Будет выведено диалоговое окно для доступа.
  5. Нажмите Да.
  6. Черный ящик открывается мигающим курсором.
  7. Введите «sfc /scannow» и нажмите ENTER.
  8. Проверка системных файлов начнет сканирование на наличие проблем action.swf и других системных файлов (проявите терпение — проверка может занять длительное время).
  9. Следуйте командам на экране.

Шаг 8: Установите все доступные обновления Windows

Microsoft постоянно обновляет и улучшает системные файлы Windows, связанные с action.swf. Иногда для решения проблемы SWF нужно просто напросто обновить Windows при помощи последнего пакета обновлений или другого патча, которые Microsoft выпускает на постоянной основе.

Чтобы проверить наличие обновлений Windows (Windows XP, Vista, 7, 8 и 10):

  1. Нажмите на кнопку Начать.
  2. Введите «update» в строке поиска и нажмите ENTER.
  3. Будет открыто диалоговое окно Обновление Windows.
  4. Если имеются доступные обновления, нажмите на кнопку Установить обновления.

Шаг 9: Произведите чистую установку Windows

Предупреждение: Мы должны подчеркнуть, что переустановка Windows займет очень много времени и является слишком сложной задачей, чтобы решить проблемы action.swf. Во избежание потери данных вы должны быть уверены, что вы создали резервные копии всех важных документов, изображений, программ установки программного обеспечения и других персональных данных перед началом процесса. Если вы сейчас е создаете резервные копии данных, вам стоит немедленно заняться этим (скачать рекомендованное решение для резервного копирования), чтобы защитить себя от безвозвратной потери данных.

Пожалуйста, учтите: Если проблема action.swf не устранена после чистой установки Windows, это означает, что проблема SWF ОБЯЗАТЕЛЬНО связана с аппаратным обеспечением. В таком случае, вам, вероятно, придется заменить соответствующее оборудование, вызывающее ошибку action.swf.

Имя файла: action.swf Последняя известная версия: 1.0.0.0
Разработчик: Sun Microsystems Размер файла (байтов): 109225
Программное обеспечение: Sun Solutions CD Операционная система: Windows 98 98
Описание: 1 2002
MD5: 1F002B830E23513CBAEF346B57563244
SHA1: 8B7C3AD75EEF9BFCC38D539172B470873FE22753

Информация об операционной системе

Сообщения об ошибках Action.swf могут появляться в любых из нижеперечисленных операционных систем Microsoft Windows:

  • Windows 10
  • Windows 8
  • Windows 7
  • Windows Vista
  • Windows XP
  • Windows ME
  • Windows 2000

Проблема с Action.swf все еще не устранена?

Обращайтесь к нам в любое время в социальных сетях для получения дополнительной помощи:

Об авторе: Джей Гитер (Jay Geater) является президентом и генеральным директором корпорации Solvusoft — глобальной компании, занимающейся программным обеспечением и уделяющей основное внимание новаторским сервисным программам. Он всю жизнь страстно увлекался компьютерами и любит все, связанное с компьютерами, программным обеспечением и новыми технологиями.

Отобразить файлы SWF в алфавитном порядке:

Вы загружаете пробное программное обеспечение. Подписка на один год стоимостью $39,95 необходима для разблокировки всех функций приложения. Подписка обновляется автоматически по завершению (Узнать больше). Нажав на кнопку «Начать загрузку» и установив «Софт»», я подтверждаю, что прочитал(а) и согласен(на) с Пользовательским соглашением и Политикой конфиденциальности Solvusoft.

Примеры ActionScript 3 (только код)

Есть ли где-нибудь полезная страница учебника, где я могу узнать ActionScript 3? Или вы можете мне помочь?

Я не использую GRAPHICAL DESIGNER, и я не хочу этого делать. Все, что мне нужно, это код.

Например: мне нужно быстро научиться:

  1. Кнопки и текстовые поля (основная форма)
  2. Рисование холста (например, холст html5)

Использование FlashDevelop + Flash SDK, никаких плагинов, ничего. Я просто получил его, чтобы работать (компилировать, создавать и начинать пустой кусок ничего), и теперь мне нужно посмотреть, что я могу сделать с кодом ActionScript.

Решено: благодаря Dannyw 2 предмета выше могут быть решены напрямую (с незначительными дополнениями)!

Джулианский ответ тоже очень полезен. Поскольку я также хотел просмотреть все стандартные классы во Flash:

Для текстовых полей:

Я изучил ActionScript так же, как вы намереваетесь, просто читая учебные пособия в Интернете и собирая биты, когда я шел. В конце концов, я купил себе большую старую библейскую скрипт-скрипт (Essential Actionscript 3.0 от Colin Moock), но могу с уверенностью сказать, что интернет был моим самым ценным ресурсом!

Получайте удовольствие от учебников :)

У меня есть несколько советов, чтобы вы стали отличным разработчиком flashdeveloper:

  • Брось все, что знаешь, начни свежие. У вас есть странные предположения о том, как должен работать рабочий процесс. Если вы хотите стать профессионалом, вы должны быть открыты для других рабочих процессов.
  • Если ваш приход из ActionScript 2, не думаю, что as2 похож на as3, так что не пытайтесь делать AS2 с AS3. Опять же, брось все, что знаешь.
  • Чтение и обучение Adobe LiveDocs
  • Узнайте, как работает список отображения.
  • Изучите стандарты кодирования AS3, научитесь писать чистый читаемый код, а затем попытайтесь изучить шаблоны проектирования.
  • Узнайте, как использовать общие библиотеки actionscript, TweenLite, Gaia framework, RobotLegs, Храмовую библиотеку, Pure MVC, Away3D, as3corelib и т.д.
  • Не пытайтесь изобретать колесо, не создавайте свой собственный фреймворк, потому что вы думаете, что нет такого, как ваш, большинство стартеров вступают в эту ловушку.
  • Код никогда не находится внутри панели действий Flash IDE, есть действительно красивые редакторы actionscript, такие как FlashDevelop, FDT, FlashBuilder, IntelliJ. Но не теряйте себя в коде, есть много визуальных материалов, которые могут быть быстрее созданы с использованием Flash IDE, поэтому найдите хороший рабочий процесс, а не ограничивайте себя.
  • если вам нравятся видеоуроки; видео на gotoAndLearn.com, большинство из них имеют общие практики.
  • Если вам нравится учиться на проектах с открытым исходным кодом: найдите as3-проекты на github.com или wonderfl, посмотрите, как они это сделали.
  • если вы любите читать блоги: feeds.adobe.com полна хороших релевантных блогов. Учитесь лучше.

И последнее, но не менее важное: нет окончательного руководства стать разработчиком flashdevelop-code-only-flash. Как спорт, вы должны тренироваться и просто экспериментировать сразу. Поэтому будьте открыты, используйте google alot, попробуйте бросить вызов упражнениям и забавным экспериментам.

Кнопка и загрузка внешнего SWF

Нужно сделать, чтобы в одном swf файле (естественно у меня есть .fla версия), при клике на определенную кнопку, загружался внешний SWF файл (на фоне этого, первого). Во втором SWF есть крестик, по нажатию на который, этот SWF (который 2) должен закрыться.

AS 3.0
Пытался искать на форуме, но не нашел. Отрывками мне не понять.
Если кто-то сможет помочь, буду очень благодарен! Пожалуйста, не закрывайте тему.

19.03.2020, 13:01

Загрузка внешнего swf файла
Я во Flash ещё новичок, и мне нужна помощь. Задача: требуется загрузить один swf внутрь другого.

Загрузка swf в контейнер другой swf
Подскажите, как в as3 сделать, чтобы подгружаемая флешка появлялась не на тойже сцене, а в окошке.

Загрузка Swf файла в Swf
Привет всем,в данный момент хочу сделать себе веб страницу во Flash страница состоит с 3 swf .

Создание внешнего прелоадера для загрузки нескольких swf использующих API VK
День добрый. Проект разбит на несколько swf фалов, в каждом из них используется API VK. При.

Загрузка и выгрузка .swf
Здравствуйте, столкнулся с двумя проблемами: 1) Не знаю, как сделать загрузку ролика по нажатию.

19.03.2020, 13:59 2 19.03.2020, 15:11 [ТС] 3 19.03.2020, 18:41 4
ActionScript 3
ActionScript 3
ActionScript 3
19.03.2020, 18:41
20.03.2020, 20:12 5
21.03.2020, 11:31 6

TanaTiX, Ну, так я и дал ему код выгрузки второго swf. Его закрывающий крестик должен находиться в первом ролике. Тогда загруженный второй swf не будет висеть в памяти.
Или вы имеете в виду, что надо бы, всё же, выгрузить загруженный файл при клике на кнопку закрытия, которая находится именно в загруженном ролике??

Добавлено через 1 час 19 минут
Я думаю, что загруженный файл нельзя выгрузить, кликнув на символ, который находится внутри него. Но можно устроить его выгрузку через промежуточный пустой ролик, который после выгрузки второго swf хоть и останется в памяти, но не будет так сильно на неё давить. Потому что пустой! То есть в первый ролик загрузить пустой swf, который будет оставаться в его памяти.
Вот, как-то так должен выглядеть код пустого однокадрового swf:

Что такое код swf_actiongotolabel

Описание: У вас проблемы с phpBBex 1.x и вам необходима помощь? Спрашивайте здесь!
Правила раздела: Одна тема — один вопрос или группа связанных вопросов. Обязательно формируйте внятный заголовок, максимально отражающий суть вопроса. Подробно описывайте проблему. Не забудьте указать версию phpBBex и какие моды установлены, по возможности добавьте скриншоты проблемы или ссылку на страницу с проблемой.
Модератор: Поддержка

Girl » 25.12.2012, 19:12

VEG » 25.12.2012, 20:48

Girl » 25.12.2012, 22:00

VEG » 25.12.2012, 22:40

Girl » 26.12.2012, 09:31

andrei » 24.01.2013, 12:40

Кнопка и загрузка внешнего SWF

Нужно сделать, чтобы в одном swf файле (естественно у меня есть .fla версия), при клике на определенную кнопку, загружался внешний SWF файл (на фоне этого, первого). Во втором SWF есть крестик, по нажатию на который, этот SWF (который 2) должен закрыться.

AS 3.0
Пытался искать на форуме, но не нашел. Отрывками мне не понять.
Если кто-то сможет помочь, буду очень благодарен! Пожалуйста, не закрывайте тему.

19.03.2020, 13:01

Загрузка внешнего swf файла
Я во Flash ещё новичок, и мне нужна помощь. Задача: требуется загрузить один swf внутрь другого.

Загрузка swf в контейнер другой swf
Подскажите, как в as3 сделать, чтобы подгружаемая флешка появлялась не на тойже сцене, а в окошке.

Загрузка Swf файла в Swf
Привет всем,в данный момент хочу сделать себе веб страницу во Flash страница состоит с 3 swf .

Создание внешнего прелоадера для загрузки нескольких swf использующих API VK
День добрый. Проект разбит на несколько swf фалов, в каждом из них используется API VK. При.

Загрузка и выгрузка .swf
Здравствуйте, столкнулся с двумя проблемами: 1) Не знаю, как сделать загрузку ролика по нажатию.

19.03.2020, 13:59 2
19.03.2020, 15:11 [ТС] 3
19.03.2020, 18:41 4
ActionScript 3
ActionScript 3
ActionScript 3
19.03.2020, 18:41
20.03.2020, 20:12 5
21.03.2020, 11:31 6

TanaTiX, Ну, так я и дал ему код выгрузки второго swf. Его закрывающий крестик должен находиться в первом ролике. Тогда загруженный второй swf не будет висеть в памяти.
Или вы имеете в виду, что надо бы, всё же, выгрузить загруженный файл при клике на кнопку закрытия, которая находится именно в загруженном ролике??

Добавлено через 1 час 19 минут
Я думаю, что загруженный файл нельзя выгрузить, кликнув на символ, который находится внутри него. Но можно устроить его выгрузку через промежуточный пустой ролик, который после выгрузки второго swf хоть и останется в памяти, но не будет так сильно на неё давить. Потому что пустой! То есть в первый ролик загрузить пустой swf, который будет оставаться в его памяти.
Вот, как-то так должен выглядеть код пустого однокадрового swf:

Символы и ActionScript

На этой странице

ActionScript® позволяет управлять символами при исполнении. С помощью ActionScript в FLA-файлах можно создавать интерактивные и другие возможности, которые недоступны при использовании одной только временной шкалы.

ActionScript® позволяет управлять символами при исполнении. С помощью ActionScript в FLA-файлах можно создавать интерактивные и другие возможности, которые недоступны при использовании одной только временной шкалы.

См. обсуждение символов и ActionScript в веб-справке, чтобы получить информацию об управлении символами с помощью ActionScript.

Управление экземплярами и символами при помощи сценариев ActionScript

Сценарии ActionScript позволяют управлять экземплярами фрагментов ролика и кнопок®. Для доступа из сценария ActionScript экземпляр фрагмента ролика или кнопки должен иметь уникальное имя. Сценарий ActionScript можно написать самостоятельно или использовать предварительно заданные поведения в Animate.

Дополнительные сведения см. в разделе Обработка событий в руководстве разработчика ActionScript 3.0.

Управление экземплярами с помощью вариантов поведения

В FLA-файлах, в настройках публикации которых выбрано значение «ActionScript 2.0», для управления экземплярами фрагмента ролика или графики в документе могут использоваться не сценарии ActionScript, а варианты поведения. Варианты поведения представляют собой заранее написанные сценарии на языке ActionScript, которые позволяют вводить в документ исходный текст ActionScript без его самостоятельного написания. Варианты поведения в ActionScript 3.0 не реализованы.

Варианты поведения могут использоваться совместно с экземплярами, позволяя задавать порядок наложения в кадре, а также загружать, выгружать, связывать с URL-адресами, воспроизводить, останавливать, дублировать или перетаскивать фрагменты роликов.

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

Варианты поведения, имеющиеся в Animate, приведены в следующей таблице.

Загрузка графического объекта

Загружает внешний JPEG-файл в экран или во фрагмент ролика.

Путь и имя файла JPEG-файла.

Имя экрана или экземпляра фрагмента ролика, получателя графического объекта.

Загрузка внешнего фрагмента ролика

Загружает внешний SWF-файл в экран или в целевой фрагмент ролика.

URL-адрес внешнего SWF-файла.

Имя экрана или экземпляра фрагмента ролика, получателя SWF-файла.

Создать дубликат фрагмента ролика

Дублирует экран или фрагмент ролика.

Имя дублируемого экземпляра фрагмента ролика.

Смещение копии по осям Х и Y в пикселах от исходного экземпляра.

Перейти к указанному кадру или метке и начать воспроизведение

Воспроизводит фрагмент ролика начиная с определенного кадра.

Имя экземпляра целевого фрагмента ролика, который должен быть воспроизведен.

Номер или метка кадра для воспроизведения.

Перейти к указанному кадру или метке и остановить воспроизведение

Останавливает фрагмент ролика, при необходимости перемещая точку воспроизведения на определенный кадр.

Имя экземпляра целевого фрагмента ролика, который должен быть остановлен.

Номер или метка кадра для остановки.

На передний план

Переносит экран или целевой фрагмент ролика на вершину списка.

Имя экрана или экземпляра фрагмента ролика.

Переносит экрана или целевой фрагмент ролика в списке на одну позицию вверх.

Имя экрана или экземпляра фрагмента ролика.

Отправляет целевой фрагмент ролика в конец списка.

Имя экрана или экземпляра фрагмента ролика.

Переносит экран или целевой фрагмент ролика на одну позицию вниз в списке.

Имя экрана или экземпляра фрагмента ролика.

Начать перетаскивание фрагмента ролика

Начинает перетаскивать фрагмент ролика.

Имя экрана или экземпляра фрагмента ролика.

Остановить перетаскивание фрагмента ролика

Останавливает текущее перетаскивание.

Выгрузка фрагмента ролика

Удаляет из проигрывателя Flash Player фрагмент ролика, который был загружен методом loadMovie().

Имя экземпляра фрагмента ролика.

Создание и настройка поведения

Убедитесь, что для текущего FLA-файла в параметрах публикации задана поддержка «ActionScript 2.0» или более ранней версии.

Илон Маск рекомендует:  Gets ввод строки
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL