PDA

Просмотр полной версии : AS2 vs AS3


Dalass13
23.02.2011, 23:56
Сразу же извиняюсь за то, что поместил эту тему сюда (просто не знал куда ее поместить в принципе)

Долгое время программировал на AS2 и был абсолютно счастлив и удовлетворен.
Появился AS3 - не обращал внимания сначала, потом всё чаще и чаще стал слышать что-то типа "AS2 пережиток и скоро никому нахрен будет не нужен" и сейчас для меня встал вопрос ребром. Стоит ли забивать на столь привычный и любимый AS2 ради AS3? Неужели AS2 это настолько "недоязык" и никому через пару лет не будет интересен? Если стоит переходить то какую литературу можете посоветовать?

Спасибо за внимание


з.ы. скажите всё-таки куда лучше поместить эту тему, а то я по ходу намусорил в разделе по AS2 XD

Psycho Tiger
24.02.2011, 00:10
Устал я от таких тем. Честное слово. Попробуйте вот это. (http://www.flasher.ru/forum/search.php)

Hauts
24.02.2011, 00:12
Вас никто не заставляет бросить AS2 и начать писать AS3. Совмещайте приятное с полезным, переходите постепенно.

Насчет "AS2 это настолько недоязык" — это спорный вопрос. В умелых руках и на AS2 можно творить массу прелестей. Но все-таки у AS3 больше возможностей и он перспективнее. Так что смело учите.

Начните с прочтения книги Колина Мука "Actionscript 3.0 для Flash, подробное руководство".

P.S. Вопрос не совсем по теме: кто-нибудь может объяснить, почему версии AS с точкой и нулем ставятся? Это из расчета на то, что когда-нибудь появится версия 2.1 или 3.1?

Psycho Tiger
24.02.2011, 00:23
Это просто понты )

Stargazer
24.02.2011, 01:09
Если флеш вам больше нужен для графики/анимации и вы никогда не пишете более пары сотен строк кода - то для вас, вероятно, нет причины переходить на as3. В ином случае - as3 на порядок более удобен и эффективен, нежели as2. Сейчас если мне вдруг приходится возвращаться к as2, у меня сразу же портится настроение - уж очень часто в нём приходится спотыкаться на шаблонных вещах из-за его прототипного прошлого.

Могу сказать, что as3 - это на 80% тот же as2, только "более подтянутый", меньше позволяющий халтуры. Основная разница - это вместо onRelease теперь нужно писать addEventListener(MouseEvent.CLICK, myClickHandler). Мувиклипы создаются с помощью new MovieClip(), а потом добавляются на сцену (и даже, при желании, переносятся к другому родителю) при помощи addChild. Картинки и клипы из библиотеки вместо attachMovie и attachBitmap создаются с помощью new УказанныйВБиблиотекеId(). Канули _root и _global, а flashVars теперь не транслируется в рутовое пространство имён, а читается из stage.loaderInfo.parameters. MovieClip перестал господствовать на сцене, поделив обязанности на MovieClip (привычный многокадровый клип), Sprite (то же самое, но без кадров (единственный кадр)), Shape (для векторного рисования) и Bitmap (вместо attachBitmap). Ну и поскольку, наконец, была выстроена человеческая иерархия классов - все они являются наследниками DisplayObject (абстрактный клас "любого элемента на экране"), а он, в свою очередь, является наследником EventDispatcher (класс, который рассылает события).

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

По-моему, этого описания более чем достаточно для того, чтобы безболезненно перейти на as3. Я перешёл за 1 месяц, в основном, просто читая справку.

Dalass13
24.02.2011, 01:47
сколько обсуждений читал про AS3, все говорят что по сути, надо выучить новый язык, настолько он отличен от AS2. Надо будет как-нибудь почитать учебники на эту тему

2 Stargazer, спасибо за отличное объяснение, только вот не понял почему событие onRelease стало MouseEvent.CLICK)) не логично звучит как-то

2 Psycho Tiger не гибкий поиск тут, искать тяжело да и желания такого не появляется, когда видишь этот стандартный форумный поиск -_-

Хемуль
24.02.2011, 03:14
2 Dalass13:
Тут всё просто. Если вы хотите быть Flash-программистом и хотите развиваться в этом направлении, AS3 - это ваш путь, без вопросов. Если вы баннер-мейкер, то AS2 вам хватит в большинстве случаев. Если вы дизайнер, то вы можете не программировать вообще.

Всегда помните ещё, что AS3 - это язык, который обрабатывается более современной виртуальной машиной. Более быстрой и производительной.

Hauts
24.02.2011, 09:17
Для баннеров часто фиксируют версию фп восьмеркой, тем самым оставляя только AS2.

И все чаще и чаще заказчик хочет от баннера намного больше, чем просто анимация и getURL на клик. Бывают баннеры, в которых при "простое" включается автоматическая игра (типа стрелялка), при наведении начинаешь стрелять сам. Или курсором управляешь асфальтоукладчиком, который строит трассу и по которой потом пронесется машинка. И всю эту "красоту" нужно в 25кб вмещать.

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

Tails
24.02.2011, 09:40
Хехе, я на ас 3, в учебных целях, делал заставку для игры - целый день, в основном не вылизая из хелпа и Мука. Там всего-то, небо рисовалась, появлялась надпись, проигрывались 3 "взрывчика" и после них кнопка play. Но очень понравилось, особенно работа гц, скармливать ему отработавшие "взрывчики" было одно удовольствие. При этом код в кадрах симола по прежнему можно писать. И симолы из библиотеки можно связывать с собственным класом, это очень удобно, например когда визуальный эффект отработает своё, он автоматически удаляеться из экрана и скармливаеться гц. Из основного кода программы его нужно только загрузить - и забыть. К примеру в ас 2, если ты что-то загрузил на сцену, это будет там навсегда, даже если юзать unloadMovie;

Помню ещё таймер не мог запустить часа два ... было весело вощем.
Ас 3 действительно намного удобней, ощущение такое, что ас 2 - поверхностный, а ас 3 уходит глубоко корнями в среду флеш плеера. И веть это только начало ... :)

имхо Для всяких мелки интерактивных банерчиков, призенташек - ас 2 отлично подходит. Но для чего-то более грандиозного - ас 3.

etc
24.02.2011, 09:58
Из основного кода программы его нужно только загрузить - и забыть.

Нежизнеспособный подход.

Tails
24.02.2011, 10:06
etc
Почему ? отыграв своё он сам себя полностью удаляет. Есть какой-то более универсальный вариант ?

etc
24.02.2011, 10:19
etc
Почему ? отыграв своё он сам себя полностью удаляет. Есть какой-то более универсальный вариант ?

Удалять должен тот, кто его создал.