Обновление MouseWheel
Давненько ничего не писал
Обновился MouseWheel, теперь захват мыши работает сразу и без вопросов. Протестировано на Firefox, IE7, Opera под Windows.
//TODO: Надо бы поплотнее заняться блогом.
6 comments
Захват колеса мыши
После перехода на ActionScript 3 и Flash Player 9 вы наверняка сталкивались с тем, что размещенный на странице ролик не захватывает скролл мыши (как это было в ActionScript 1/2), позволяя пользователю прокручивать содержимое страницы независимо от того, находится ли ролик в фокусе или нет. Достаточно давно я опубликовал класс GlobalMouse, он решал данную проблему, но в целом был неудобен именно для решения подобной проблемы. В связи с этим, я написал класс MouseWheel, позволяющий захватывать и отпускать скролл мыши в любой момент времени при необходимости. К сожалению, браузер Safari, а также Mac OS-версии популярных браузеров (Opera/Firefox) не позволяют захватывать скролл мыши, поэтому данный класс в них работать не будет.
Посмотреть демо вы можете здесь. Исходный код примера и сам класс найдете на той же странице.
28 comments
Первые впечатления о Flash CS4 Professional
Итак, попалась в руки новая версия Flash — Flash CS4 Professional за номером 10. Это скорее не обзор, а просто впечатления от двух часов работы с новой версией флеша. Осторожно, скриншоты в PNG и не говорите, что я вас не предупреждал.
Read more
12 comments
getDefinitionNames
У класса ApplicationDomain есть замечательный метод getDefinitionByName, возвращающий нам класс нужного объекта или функцию. Но нет метода getDefinitionNames, возвращающий имена всех классов, находящихся в данном домене (или загруженном swf). Моя функция getDefinitionNames призвана устранить данный недостаток. Для получения имен классов необходимо передать объект LoaderInfo или ByteArray, содержащий корректный swf.
Версия 2.1 от 09.03.10:
Версия 2.0 от 16.09.09:
Версия 1.1.1 от 16.09.09:
Версия 1.1 от 13.09.09:
P. S.: Решение для тех, кто хочет знать о подгруженном swf больше.
20 comments
О троллях
В современном интернете, особенно в последнее время, развелось очень много маленьких жучков. Обычно их называют троллями (см. Троллинг@WikiPedia). Как правило, они заселяют различные форумы и прочие места массового скопления и общения людей.
Вероятно, моя популярность достигла такого уровня, что у меня появился свой, персональный тролльчик. Как сказал Рост — «Кстати, с популярностью тебя! Незаметным не гадят
».
Уж не знаю, чем я ему насолил, но я ему определенно нравлюсь, так как он ручной уже около года (ну, может быть, поменьше). В какой-то мере мне это даже льстит (ещё бы, персональный тролльчик!). Он прекрасно испражнялся в моем блоге, но после того, как я отключил комментарии без регистрации, он изобрел новое средство — писать от моего имени в других блогах. А посему, если вы видите комментарий, якобы от моего имени, с орфографическими и грамматическими ошибками (ну или без них), оскорбляющий вас или других людей, намеренно привлекающий к себе внимание каким-либо провокационным высказыванием или доказывающим свое мнимое превосходство в какой-либо области — это не мой комментарий. Будьте осторожны.
3 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.
16 comments
LoaderInfo Vulnerability Fixed?
Похоже, нас услышали.
В Flash 10 AS3 API обнаружилось изменение описания метода getLoaderInfoByDefinition класса LoaderInfo. Было:
getLoaderInfoByDefinition () method
public static function getLoaderInfoByDefinition(object:Object):LoaderInfo
Returns the LoaderInfo object associated with a SWF file defined as an object.
Player Version: Flash Player 9 Update 3.
Parameters object:Object — The object for which you want to get an associated LoaderInfo object.
Returns LoaderInfo — The associated LoaderInfo object. Returns null when called in non-debugger builds (or when debugging is not enabled) or if the referenced object does not have an associated LoaderInfo object (such as some objects used by the AIR runtime).
Throws SecurityError — The caller is not running in the local trusted sandbox.
Стало:
???????? ????? ????????getLoaderInfoByDefinition () method
public static function getLoaderInfoByDefinition(object:Object):LoaderInfoLanguage Version : ActionScript 3.0
Player Version : Flash Player 9.0.115.0Returns the LoaderInfo object associated with a SWF file defined as an object.
Parameters
object:Object — A SWF file object.Returns
LoaderInfo — The associated LoaderInfo object.
Т.е. теперь возвращается LoaderInfo того swf, который создал объект, переданный в аргументе метода. Таким образом, описанной мной дыры теперь нет.
Проверить это сейчас у меня нет возможности, позже выясню этот вопрос.
4 comments
О дырах и багах
Обнаружил интересный баг работы события ADDED_TO_STAGE:
This content requires Adobe Flash Player.
Сколько раз будет вызван обработчик addedToStage для sp0? Я всегда полагал, что один раз. Оказывается, он будет вызван три (!) раза. Это о багах.
Теперь о дыре, обнаруженной BlooDHounD-ом вместе со мной. У класса LoaderInfo есть один интересный статический метод getLoaderInfoByDefinition, принимающий в качестве аргумента любой объект и возвращающий объект LoaderInfo. Дело в том, что LoaderInfo, который он возвращает, имеет ссылки на content (document class нашего приложения), а значит на stage и прочие объекты, доступ к которым, вообще говоря, должен быть ограничен. На лицо серьезная дыра, позволяющая обращаться к stage из любого объекта или класса, не говоря уже об ApplicationDomain, причем, независимо от того, в каком домене находится объект, вызывающий данный метод. Простой пример:
This content requires Adobe Flash Player.
Письмо о дыре будет отправлено в Adobe.
8 comments
Видеопособие по созданию прелоадера во Flash CS3
Jarrod Medrano из Portent Interactive опубликовал в своем блоге видеопособие по созданию AS3-прелоадера во Flash CS3. Thanks, Jarrod!
8 comments

