Возможности Flash ActionScript 3 отсутствуют в ActionScript 2 - PullRequest
1 голос
/ 12 июля 2009

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

Ответы [ 5 ]

3 голосов
/ 19 июля 2009

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

  • пара языковых функций, делающих вашу жизнь ОЧЕНЬ проще : закрытие методов (нет необходимости в делегате), необязательные аргументы (экономит много времени по сравнению с необязательными аргументами AS2, которые довольно полезны) , разрешение области действия экземпляра (вы можете обращаться к членам экземпляра из анонимной функции, объявленной в методе этих экземпляров, поэтому нет необходимости в var self = this;)
  • общий дизайн API : API намного чище, разумно упакован, имеет правильно определенные константы (во многих классах, таких как flash.filters.BitmapFilterType), предоставляет гораздо больше возможностей и предлагает правильную обработку ошибок
  • package flash.net:
    • Socket: реальные сокеты вместо сокетов XML ... это позволяет реализовать любой протокол на основе TCP
    • URLStream: на самом деле это довольно мощно, но лично я всегда использую сокеты вместо
  • package flash.display: намного чище, гораздо более согласованно, гораздо более детально (и, следовательно, сокращено накладные расходы) ... также вы можете, наконец, убрать объекты из списка отображения, изменить их родительский элемент и т. Д. ... события ввода больше не обрабатываются с помощью одного одиночного обратного вызова (который иногда является адским ограничением), они активируются разумным образом (на объектах, которые имеют фокус), они запускаются во вложенных InteractiveObject с. .. а затем событие всплывает в списке отображения ...
    • 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: прокси-класс настолько чертовски силен и с ним так весело играть, правда ... использовать его для прокси, коллекций, AOP и т. Д. ...
    • Timer: хорошо, теперь это может быть легко переопределено в AS2, но кроме этого, я думаю, что это намного чище, чем возиться с setInterval ...
  • package flash.text:
    • TextField: намного больший API, позволяет много интересных вещей, таких как получение метрики персонажа / линии и т. Д. ...
    • Font.registerFont: позволяет встраивать шрифты во время выполнения
    • Общий дизайн намного чище и мощнее
  • package flash.sampler: это очень полезно при поиске узких мест
  • package flash.media: гораздо лучший API, особенно SoundChannel и SoundTransform, действительно полезны ...

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

я думаю, вот и все ...

Greetz

back2dos

2 голосов
/ 12 июля 2009

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

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

2 голосов
/ 13 июля 2009

Как список:

  • Локальная загрузка и сохранение
  • flash.text.engine и все его новые возможности (довольно большие)
  • родной 2.5D (Matrix3D, PerspectiveProjection и т. Д.)
  • пользовательских URL-запросов
  • Манипулирование двоичными данными (это было довольно тривиально в AS2)
  • «Быстрое» управление растровыми изображениями (это позволяет гораздо больше, чем AS2)
  • Пользовательские фильтры (Pixel Bender)
  • новый API рисования имеет несколько новых возможностей
  • E4X XML
  • Алхимия
  • Перевернутая кинематика
  • DRM-носитель (не уверен, возможно ли это в AS2)

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

1 голос
/ 17 июля 2009

Питер Элст имеет хорошие видеоподкасы t, представляющие функции, доступные в ActionScript3

1 голос
/ 12 июля 2009

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

Есть еще примеры, но я пока не могу придумать ни одного

...