2009-07-12 2 views
1

С тех пор, как Adobe представила ActionScript 3 с Flash Player 9, многие из нас медленно переключались. Короче говоря, я хотел бы знать, что AS3 может сделать, это просто невозможно или значительно сложно в AS2. Я не говорю о готовых компонентах, а о встроенных классах, таких как веб-удаленный доступ, манипуляция двоичными данными, обработка XML и т. Д.Возможности Flash ActionScript 3, отсутствующие в ActionScript 2

ответ

3

ну, на самом деле, AS3 - это язык, а не фреймворк ... API флеш-плееров имеет фреймворк, как черты ... но хорошо, давайте не будем спорить о терминологии ... так что круто в flash-плеере 9 (кроме тех, что уже упоминались)?

  • несколько возможностей языка делают вашу жизнь намного проще: укупорочный метода (нет необходимости для делегата), необязательные аргументы (экономит много времени по сравнению с AS2 необязательных аргументов, которые скорее хак), (вы можете получить доступ к членам экземпляра из анонимной функции, объявленной в методе этих экземпляров, поэтому нет необходимости в var self = this;)
  • общий дизайн API: API намного чище, разумно упакован , имеет постоянные константы (во многих классах, например flash.filters.BitmapFilterType), и предоставляет гораздо больше вещей и предлагает правильную обработку ошибок
  • package flash.net:
    • Socket: реальные розетки, а не XML сокетов ... это позволяет любому на основе TCP протокол, который будет реализован
    • URLStream: это на самом деле довольно мощный, но лично я всегда использовать сокеты вместо
  • : больше не обрабатываются через один ответный код (который иногда является адским ограничением), они срабатывают разумным образом (на объектах с фокусом), они запускаются в вложенных InteractiveObject s ... и затем событие пузырятся в списке отображения ...
    • Loader::loadBytes: позволяет генерировать SWF во время выполнения с помощью ActionScript и загрузить их в плеер непосредственно, а также ручное кэширование
    • Stage::frameRate: наконец, вы можете изменить его во время выполнения
    • DisplayObject::getBounds & DisplayObject::getRect : намного лучше, чем возиться с этой невероятно глупой возвращаемой стоимостью AS2 эквивалент ...
  • package flash.events: частично упоминалось выше, в конъюнкции с DisplayObjectModel, гораздо чище, гораздо более мощный, очень многоразовые ... хорошо сделано, действительно ...
  • package flash.utils:
    • ByteArray: манипуляция двоичных данных в разумных сроках ... это позволяет JPG или PNG сжатие, создание PDF на стороне клиента, и так далее
    • Dictionary: позволяет отображение объектов к объектам ... это может быть очень удобно (вы можете взломать это в AS2 , но это был не ваш вопрос, верно?) ... например, это отлично подходит для создания наборов или отображения объектов для обработчиков и т. д.
    • Proxy: прокси-класс настолько проклят и весел играйте с, на самом деле ... используйте его для прокси, коллекций, АОП и т. д. ...
    • Timer: Хорошо, теперь это вполне можно переопределить в AS2, но, кроме этого, я думаю, что он намного чище, чем возиться arount с setInterval ...
  • package flash.text:
    • TextField: гораздо больше API, позволяет много интересных вещей, как получение метрик символов/строк и т.д. ...
    • Font.registerFont: позволяет внедрять шрифты во время выполнения
    • целом дизайн намного чище и эффективен
  • package flash.sampler: это ДЕЙСТВИТЕЛЬНО полезно при попытке найти бутылку шеек
  • package flash.media: гораздо лучше API, в частности SoundChannel и SoundTransform действительно полезны ...

отметить, что модель событий и список Diplay может быть переписана в AS2 за дополнительную плату производительности, но я думаю, что это было около построено -в особенности ...

я думаю, что это о нем ...

Greetz

back2dos

1

Помимо перехода к более java-подобному подходу OO (более строгому), один из многих недостающих - способность превратить сцену в растровое изображение. У вас больше контроля над местом, где сидят клипы, используя список отображения. Например, если клип A содержит клип B, вы можете через код переупорядочить B, чтобы он содержал A. Там есть много вещей, которые позволяют значительно контролировать. XML проще в использовании, а обработка событий более соответствует современным языкам. Одной из интересных функций является возможность отправки массива байтов на серверный скрипт, который позволяет вам сохранять jpg, gif и png на сервер непосредственно со вспышки.

Есть несколько примеров, но я не могу вспомнить ни в момент

2

Большой плюс скорость. AS3 is much faster than AS2. Это, очевидно, позволяет вам делать более интенсивное кодирование/анимацию.

Тогда есть также аргумент, что все новое, которое вводится (построено в 3D, пиксельном изгибе и т. Д.), Предназначено для AS3, поэтому, если вы придерживаетесь AS2, вам уже 3 или около того лет " передний край".

2

В списке:

  • локальной нагрузки & сохранить
  • flash.text.engine и всех его новых возможностей (его довольно большой)
  • родной 2.5D (Matrix3D, PerspectiveProjection и т.д.)
  • пользовательских URL запросов
  • Binary Манипулирование данными (это было довольно тривиальным в AS2)
  • "Fast" Bitmap Manipul ция (это позволяет гораздо больше, чем AS2)
  • пользовательских фильтров (Pixel Bender)
  • новый рисунок API имеет несколько новых возможностей
  • E4X XML
  • Алхимия
  • инвертированием Кинематика
  • DRM медиа (не уверен, если это было возможно в AS2)

Я, наверное, забывая немало ...

+0

Многие из них являются функциями Flash Player 10. Я говорил о Flash Player 9, что не так впечатляет. –

1

Peter Elst имеет приятный video podcas t, представляющий функции, доступные в ActionScript3

Смежные вопросы