Программирование на ActionScript 3. С чего придется начать.

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

Да, рисовать во Flash CS4 конечно весело, но надо было как-то учить язык и программировать. Пытаясь разобраться, я переключил типа рабочего пространства на Developer – как-то не понравилось, вернул все по умолчанию. Дальше я узнал магию кнопки F9, которая открывала окошка для ввода кода для выбранного кадра, как на глобальной сцене, так и внутри любого отдельного мувиклипа (MovieClip один из типов объектов, имеет в себе timeline с кадрами). Стал писать код только в этих окошках – это было моей первой ошибкой. Такой код плохо контролировать, а так же при компиляции вес флэшки увеличивается. Стал все писать в отдельных файлах – один файл один класс – далее каждый класс назначается соответствующему объекту в библиотеке ресурсов. Для этого стала фатально полезна вторая фагическая фишка Flash – галочка “Export for ActionScript” в свойствах любого объекта из библиотеки ресурсов.

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

Дальше я столкнулся с такой проблемой, что некоторые мувиклипы у меня были не просто обычными мультиками, а были целыми отдельными сценами, внутри которых было еще много мувиклипов со своей логикой. И все это надо было описывать, но было лень – поэтому я старался как можно больше делать через интерфейс самой IDE, чтобы писать поменьше кода – это было очередной моей ошибкой. Так как все что делалось через менюшки и кнопочки в самом Flash оказалось не оптимальным и глючным. Работает прекрасно только Motion Tween, а все остальное делается в черном ящике Flash явно используя не оптимальные алгоритмы, так как на выходе хоть и получается какой-то рабочий вариант того, что вам надо было сделать, но,  к примеру, тормозной. Бывает и глючит. А бывает, что ты и проконтролировать сделанное, потом не сможешь никак. Самый простой пример, это компонент Button – создает объект (мувиклип навороченный) кнопки с несколькими состояниями. Каждое состояние сделано отдельным кадром мувиклипа, которое надо заполнить каким-то содержанием. Когда доделывашь кнопку, даешь ей имя и ставишь на сцену – в коде ты уже не сможешь обратиться к ней по этому имени. Смешной глюк, но при компиляции этого объекта Flash меняет имя кнопки на какое-то свое системное и пока ты в коде его отдельно не узнаешь, обратиться к этой кнопке не сможешь. Пришлось написать свой маленький класс кнопки – и весит меньше и работает хорошо.

Таких примеров можно привести еще много. И через какое-то время, я устал от глюков Flash и все-таки признал, что многое НАДО писать своими руками кодом, ибо работать будет качественней и быстрее, а плотность глюков будет зависеть от коэффициента кривизны рук.

На этом шаге я решил узнать, а что же есть именно для программирования на AS3.

Сначала на глаза попался Adobe Flex 3. Но он показался мне громоздким и так же глючил. Далее я увидел Flash Develop (www.flashdevelop.org) – очень приятная и бесплатная IDE в которой можно аккуратно и со вкусом программировать, установив и подключив Flex SDK. Но не успел я в нем разобраться, как на глаза мне попался Adobe Flash Builder 4 (labs.adobe.com/technologies/flashbuilder4/), это бывший Abode Flex, который переименовали. При этом сам SDK оставил старое название. Данная IDE заметно лучше третьей версии – в ней мне работать понравилось куда больше, он и симпатичнее и быстрее и поддерживает все актуальные новинки от Adobe. Сейчас программа на стадии Beta 2, но даже сейчас она меньше глючит, чем Flex 3.

Поработав с Flash Builder все почти встало на свои места. Осталась единственная проблема – от Flash CS4 не получилось избавиться. Все же, некоторую анимацию (Motion Tween, Bones) приходится рисовать там. Да и вообще все, что связано с вектором, приходится делать во Flash, компилировать в SWF и уже импортировать в своей проект во Flash Builder.

Так что при программировании на AS3 теоретически возможны две ситуации:

  • программист на самом деле не программист, а больше дизайнер со знаниями программирования, поэтому ему удобнее накидать все что нужно, используя продвинутый интерфейс, а потом написать немного кода, чтобы все это соединить. В данном раскладе программист встает на тропу войны с глюками порождаемые самой IDE
  • программист на самом деле действительно программист и выбирает или Flash Builder или Flash Develop и наслаждается программированием. Но вот незадача – так и приходится запускать Flash CS4, чтобы как-то обработать графику или создать нужную анимацию.

Примечание: По идее надо было начинать с рассказа о том, с чего начинать учить сам язык, а потом уже переходить к софту, но на данный момент основной теоретической базой по AS3 являются всего две книги – это «ActionScript 3.0 для Flash. Подробное руководство» (Колин Мук) и «ActionScript 3.0. Сборник рецептов» (Лотт, Шалл, Питерс). Их будет достаточно, чтобы освоить азы. То есть об азах много не напишешь, проще взять и изучить данные книги.

Похожие записи:

4 Responses to Программирование на ActionScript 3. С чего придется начать.
  1. rad Reply

    Согласен с автором, Flash IDE это больше дизайнерский инструмент, я им пользуюсь ). Код, написанный в ней, требует контроля, помогают декомпиляторы. Особенно важно контролировать область видимости объектов.
    Кстати кнопочку, созданную в ручную, нужно именовать в класс as3 в ресурсах и задать имя у объекта в сцене, тогда имена сохранятся и доступны из других скриптов, если позволяет область видимости.

    • admin Reply

      Про кнопку: Если писать все кодом – все ок, а если из библиотеки на сцену вытащить и в менюшке имя объекта вбить, то не ок.

  2. rad Reply

    У меня все работает, как я и написал. Имена автоматически создающихся при компиляции классов совпадают с именами ресурсов в библиотеке, имена объектов (…из библиотеки на сцену вытащить и в менюшке имя объекта вбить…) совпадают со вбитыми именами, и они являются экземплярами класса из библиотеки. К объектам есть доступ. flash ide cs4 as3.

  3. katea000 Reply

    Крайне полезно .

Leave a Reply

Your email address will not be published. Please enter your name, email and a comment.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">