![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
![]()
Сообщение
#1
|
|
![]() Ветеран конференции ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 1192 Регистрация: 27.02.2009 Из: Moscow Пользователь №: 9144 ![]() |
В свое время в сети попалась презентация "50 причин перейти на AS3", так, что тут будет (со временем) нечто вроде контрответа, а также разбор отличий AVM1 (AS1/AS2) от AVM2 (AS3).
(не следует считать этот топик отрицанием AVM2 и AS3. Хороший флешер должен уметь понимать любой код: от кода в стиле флеш-5 (на объектах), до кода AS3. Но чтобы хорошо в чем-то разбираться, надо знать не только сильные стороны, но и слабые, а также тщательно скрываемые) Итак, поехали: 1) Адоб сознательно (умышленно) пошла на СДЕРЖИВАНИЕ развития AVM1. От версии к версии (флеш-плеера) AVM1 развивалась. Но адоб выпустила новые продукты - основанные на AVM2 (флеш-редактор-9 - он же CS3 и уже CS4, флексы всех мастей и аир). Развитие AVM1 тормозиться, заставляя переходить сообщество на продукты с использованием AVM2. Например, интерпретатор AVM1 может считывать байт-коды названия меток кадра. Т.е. в самом ФП эта возможность реализована. А вот реализацию этого в AS1/2 адобовцы добавить "забыли", хотя для AVM2 с AS3 это сделано. И так во многом. 2) AS3 не сохранил преемственности с прежними версиями AS. Это ДРУГОЙ язык. С другими традициями и особенностями применения. По сути, те, кто захочет и кого заставит адоб перейти на AVM2 будут должны выучить новый язык. 3) AS3 имеет незаметные, но фатальные отличия от AS2. Например, в типизации :Void и :void Пустячок? Но отчего у макромедии с каждым обновлением ФП не скакали зарезервированные слова? 4) AS3 гораздо более НЕГИБКИЙ (какое издевательство над слово флекс), чем AS1. Это касается очень широкого спектра средств языка: наследования, областей видимости, обращения к объектам, формата записи во внешние файлы и т.д. и т.п. (см. ниже) 5) AS3 не позволяет менять родителей класса. AS1 делает это легко, динамически и в любое время. Например, после этого: Код Video.prototype.__proto__=MovieClip.prototype У объекта Видео начинают работать методы мувиклипа типа swapDepths() и removeMovieClip() !!! 6) Код на таймлайне 7) Новый синтаксис пакетов и классов 8) Нет duplicateMovieClip 9) Необходимость деструкторов 10) Мучения с Sound 11) Выделение искусственных классов 12) Громоздкий хелп 13) Кастрация событийной модели 14) Смешной onReleaseOutside 15) Зачем в AS3 убили arguments.caller 16) Как сыпятся песочницы адоба 17) Восьмеричный запрет б/н Откровения мистера Ли из адоба 18) Жесткий override 19) Ограничения override 20) Убогий super 21) А есть ли полиморфизм? 22) Немного об ECMAScript 23) Ограничения таймлайна 24) Глобальный объект и глобальная видимость 25) Они убили watch()... 26) Нет глобальных событий 27) Компилятор AVM2 не оптимизирует код 28) valueOf () б/н Про вес ФП 29) Виртуализация таймлайна и баги с этим связанные 30) Идиотизм Loader-а 31) "Легкие" глубины. 32) Автосоздание прототипов 33) allowDomain у LocalConnection 34) Неоправдавшиеся надежды по поводу расшаренных объектов 35) Преобразование типа null к числам 36) Зачем buttonMode для мувиклипов? 37) Run-time ошибки 38) Ограничения с работой JavaScript 39) isDown почила в бозе... Сообщение отредактировал chingachgoog - 1.07.2011 - 14:38 -------------------- |
|
|
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 19.09.2014 - 17:50 |