Записки о Flash

Archive for the 'AS3' Category

getDefinitionNames v. 2.1

Очередной обновление getDefinitionNames (скачать исходники сразу) до версии 2.1. Появилась совместимость с Flash 10, изменен режим «только классы» на действительно только классы (без интерфейсов), а также в расширенном режиме находятся ещё и Vector.

Большое спасибо Даниелю за доскональное выяснение причин, по которым getDefinitionNames не работал с swf, скомпилированном с использованием Vector — оказалось, Adobe «забыла» задокументировать новый тип multiname для Vector.

Ожидается обновление ClassExplorer с теми же правками (поддержка Vector, но не уверен, что они будут перечислены в результирующем XML, т. к. на текущий момент generic-и в ABC реализованы кривовато), а также внесение в FontLoader поддержки тега DefineFont4 для совместимости с FTE. Следите за новостями!

2 comments

getDefinitionNames v. 2.0

Сегодня день обновлений :)
В очередной раз обновился getDefinitionNames. На этот раз сразу до версии 2.0.

Что нового, вы можете узнать по ссылке.

6 comments

Обновление getDefinitionNames

16.09.09 Обновился getDefinitionNames до версии 1.1.1.

Обновления 1.1.1:

  • Повторно исправлена ошибка первой версии :) Спасибо за внимательность Christophe Herreman!
  • Обновления 1.1:

  • Исправлена ошибка, в результате которой второй и последующие кадры swf, содержащие код, не распознавались
  • В качестве аргумента в функцию можно передавать как LoaderInfo (как было в предыдущей версии), так и ByteArray, содержащий корректный swf
  • И да, всех с Днём Программиста!

    6 comments

    FontLoader v. 2.2

    Очередная новая версия FontLoader. Добавилось событие IOErrorEvent.VERIFY_ERROR, которое посылается в случае, если загруженный файл имеет неверный формат (например, вместо swf загружен html).

    14 comments

    FontLoader v. 2.1

    FontLoader обновился до версии 2.1. По просьбам зарубежных товарищей, FontLoader теперь работает в среде AIR, а также добавился новый метод loadBytes, аналогичный одноименному методу класса Loader.

    16 comments

    Ссылка на инициализатор метода

    Задача: получить внутри метода ссылку на класс, описывающий данный метод.

    В порыве бреда:

    This content requires Adobe Flash Player.


    Код размещается внутри вызываемого метода (static, private, public, internal — неважно).
    Не спрашивайте меня, зачем эта задача и для чего её решать, я не знаю. :)

    1 comment

    Обновление MouseWheel

    Давненько ничего не писал :)

    Обновился MouseWheel, теперь захват мыши работает сразу и без вопросов. Протестировано на Firefox, IE7, Opera под Windows.

    //TODO: Надо бы поплотнее заняться блогом.

    6 comments

    Захват колеса мыши

    После перехода на ActionScript 3 и Flash Player 9 вы наверняка сталкивались с тем, что размещенный на странице ролик не захватывает скролл мыши (как это было в ActionScript 1/2), позволяя пользователю прокручивать содержимое страницы независимо от того, находится ли ролик в фокусе или нет. Достаточно давно я опубликовал класс GlobalMouse, он решал данную проблему, но в целом был неудобен именно для решения подобной проблемы. В связи с этим, я написал класс MouseWheel, позволяющий захватывать и отпускать скролл мыши в любой момент времени при необходимости. К сожалению, браузер Safari, а также Mac OS-версии популярных браузеров (Opera/Firefox) не позволяют захватывать скролл мыши, поэтому данный класс в них работать не будет.

    Посмотреть демо вы можете здесь. Исходный код примера и сам класс найдете на той же странице.

    38 comments

    getDefinitionNames

    У класса ApplicationDomain есть замечательный метод getDefinitionByName, возвращающий нам класс нужного объекта или функцию. Но нет метода getDefinitionNames, возвращающий имена всех классов, находящихся в данном домене (или загруженном swf). Моя функция getDefinitionNames призвана устранить данный недостаток. Для получения имен классов необходимо передать объект LoaderInfo или ByteArray, содержащий корректный swf.

    Исходники

    Версия 2.1 от 09.03.10:

  • Теперь в обычный режим поиска возвращает только классы (ранее были ещё и интерфейсы).
  • Появилась поддержка Flash 10 (наконец-то :) ) и типа данных Vector. В расширенном режиме поиска классы типа Vector. (где X — имя класса) также будут перечислены.
  • Версия 2.0 от 16.09.09:

  • Новый режим extended, работающий по другому алгоритму (чуть-чуть медленнее обычного поиска). В этом режиме вы получите не только список классов и интерфейсов, а все доступные definitions, т. е. функции, пространства имен, константы, переменные и т. п.
  • Также появился режим onlyLinked (в этом случае не работает extended), при котором вы получите список только тех классов, которые указаны в качестве linkage в библиотеке swf. В том числе те, которые создаются при использовании метатега [Embed]. Такой режим существенно быстрее обычного и расширенного поиска и рекомендуется в тех случаях, когда вы загружаете библиотеку графических и звуковых ресурсов и вам нужен список только самих ресурсов.
  • Эта версия полностью совместима с предыдущими, при обновлении вам потребуется всего лишь обновить код getDefinitionNames
  • Версия 1.1.1 от 16.09.09:

  • Ещё раз исправлена ошибка поиска классов :)
  • Версия 1.1 от 13.09.09:

  • Исправлена ошибка, в результате которой второй и последующие кадры swf, содержащие код, не распознавались
  • В качестве аргумента в функцию можно передавать как LoaderInfo (как было в предыдущей версии), так и ByteArray, содержащий корректный swf
  • P. S.: Решение для тех, кто хочет знать о подгруженном swf больше.

    20 comments

    FontLoader — 2.2!

    Вышла новая версия FontLoader — 2.2!
    Напомню: FontLoader — инструмент, позволяющий вам загружать любые swf-ролики версии 6 и выше, так или иначе содержащие embedded-шрифты для дальнейшего их использования в вашем приложении. Теоретически, возможна загрузка роликов версии от 3 до 5, но на деле шрифты не регистрируются. С предыдущей версии FontLoader сильно изменился:

    • Полностью переписан код, исправлены ошибки в парсинге, уменьшен размер кода
    • Нет больше событий FONTS_NOT_FOUND, REGISTER, регистрация всех шрифтов происходит единовременно, а не по одному, как было раньше
    • Больше не поддерживаются шрифты статических полей
    • Используются только стандартые события flash.events.*, а значит работа с классом стала проще и нагляднее

    История:
    v. 2.2 (25.06.09): Добавлено событие VERIFY_ERROR, возникающее в случае, если загруженные данные имеют неверный формат;

    v. 2.1 (15.06.09): Теперь класс совместим с AIR. Также добавлен новый метод loadBytes, аналогичный по действию одноименному методу класса Loader.

    Посмотреть демо. Код класса можно получить там же.

    Напомню, что класс распространяется по лицензии CC-BY-ND.

    18 comments

    Next Page »