Архив рубрики «Flash»

Доступна альфа версия UML редактора UML4AS

23.05.2010

Сегодня разработчики UML редактора UML4AS выложили альфа версию в публичный доступ для скачивания.

Разработчики выделяют как основные особенности редактора:

  • дружественный интерфейс разработчика/процесс разработки
  • технология CodeSync для генерации кода, реверс-инжиниринг и устранение конфликтов
  • поддержка ActionScript и MXML файлов
  • поддержка рефакторинга
  • поддержка командной работы

и много чего ещё...
Видео, фото редактора.

После закачки можно подсмотреть как правильно установить, а после установки -- как использовать.

Свои пожелания и предложения можете выказывать на этом форуме, а рассказать о найденых ошибках, на этом.

Issue FP-4293: flash.utils.Proxy nextName return type

07.04.2010

Проблема в том, что в интерфейсе класса есть очень важный метод nextName():String, который должен возвращать имена свойств. Проблема в том, что этот метод возвращает строку и вызывает проблемы в случае, если имя свойства находится в пользовательском пространстве имён. Надо вернуть QName, а можно только строку. Будет хорошо, если кто проголосует и/или проследит за выполнением:
Issue FP-4293: flash.utils.Proxy nextName return type
Заодно можете глянуть и этот:
Issue ASC-4046: for..in cycle can not accept property names with QName or other type

Объекты с поддержкой динамических имён свойств с использованием пользовательских пространств имён

06.04.2010

Flex cookbook entry: How to and where store dynamic properties in custom namespaces.

Мне очень нравится в ActionScript 3 тесная интеграция с XML и популяризация пространств имён. Для поддержки свойств в различных пространствах имён даже создан отдельный класс – QName, объединяющий в себе указатель пространства имён и локальное имя. Но, получается что, для использования пространств имён отличных от базовых(AS3 и с пустым указателем) разработчик должен сам реализовать поддержку этих пространств имён, заранее объявив члены класса.

Динамические члены класса в пользовательских пространствах имён не поддерживаются, кроме XML объектов. Чтоб включить такую поддержку необходимо расширить класс flash.utils.Proxy и самому её реализовать. Это и было сделано в классах описываемых в этом посте – они разрешают добавлять в себя динамические члены класса в любых пространствах имён(кроме flash_proxy, в сочетании с зарезервированными локальными именами, методы которых уже реализованы).

(далее…)

Таймер с автоматической поправкой погрешности

05.04.2010

Upd: На Adobe Сookbooks появился пример более аккуратного таймера, использующего другой подход для пресечения задержек. Я собираюсь им воспользоваться и всем рекомендую(хотя бы ознакомиться стоит). На данный момент там нет скачиваемого класса, но автор обещал выложить нормально написанный пример.

Flex cookbook entry: Accurate Timer class.

Во Flash player’е работа встроенного таймера зависит от проигрывания flash ролика. Такая зависимость приводит к большим погрешностям и не делает поправку при дальнейшем выполнении. Это достаточно известная тема и уже много раз об этом писали.

(далее…)

Обёртка NetConnection для RPC

02.04.2010

Недавно замиксовал очередной видео плеер, по принципу плеера Spivaimo.com и ребята хотели, чтоб я грузил огромную XML с путями ко всем видео и изображениям. Я, на свою голову, рассказал им своё видение реализации, как и что надо делать, и главным пунктом была замена XML на AMF.

Через два месяца они сообщили, что закончили работу и можно продолжать дальше. Я не хотел пожалеть ещё раз и промолчал о реализации. :-)
Надо было быстренько подключить плеер сменив загрузчики данных с XML на AMF и быстренько я написал два класса, так чтоб не заморачиваться и не удвоить вес плеера.

(далее…)

_global для ActionScript 3

01.04.2010

В ActionScript 1 и иногда во втором, скорее по привычке, было полезно обратиться к глобальному хранилищу данных. Сейчас глобальный объект не несёт такой важной функциональности, но он всё ещё живёт, правда, запрятан далековато и просто так к нему не пробраться. Разве что, вы принципиально не пользуетесь классами в ActionScript 3 и строите свой замок на прототипах. :-D

(далее…)

Модальные окна в AIR, компонент для Flex 4

05.03.2010

Сегодня понадобилось сделать модальное окно в AIR, пошарив по интернету я не смог найти вменяемый пример, поэтому написал свою версию. Если учитывать скупость средств, то можно сказать, что это одна из не многих версий.
Можно скачать MXML компонент Flex 4 модальное окно (154), а можно посмотреть код под катом.
(далее…)

Asset Modifier, внедрение кода во встраиваемую анимацию

17.02.2010

UPD 20.02.2010: Перенёс проект на Google code и добавил новый модификатор AssetCustomModifier, в который можно передавать любую функцию/метод.

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

(далее…)

EvalUtils – простой парсер команд

17.02.2010

Когда-то давно мне было интересно написать интерпретатор ActionScript 3 и я начал его писать. :) Но через некоторое время узнал о существовании компилятора ActionScript 3, портированом из кода проекта Tamarin. Конечно, интерпретатор потерял смысл в моих глазах, но часть кода уже была написана и я решил быстро сконцентрировать полученные знания и наработки в небольшом интерпретаторе команд, описанных в точечной нотации, поддерживающий особенности ActionScript 3. Так я получил клубок кода, который почти всегда делает то что мне нужно, использовал его в нескольких проектах и решил выложить здесь отдельно.

(далее…)

Особенность методов XML объектов в ActionScript 3

16.02.2010

Наткнулся на немного неожиданную "особенность" при работе с методами XML объектов. Такое забывать нельзя, поэтому подробности под катом.

(далее…)

Google группа JSInterface

03.02.2010

Создал группу для обсуждения проекта, теперь все новости по проекту будут публиковаться там(на английском и русском языках). Так же, там будут происходить опросы общественности по поводу необходимости и важности изменений. Любой желающий может подключиться к группе и следить за развитием проекта и задавать интересующие вопросы.

P.S.: Группа модерируется, поэтому спама не будет, но могут быть задержки с сообщениями, если я в offline.

Караоке плеер «Спиваймо»

11.01.2010

Ещё летом ко мне обратились с заказом сделать караоке-плеер для нового проекта, ТЗ как такового не было, был сначала один сайт, пример, с которого надо было позаимствовать идеи, а потом – второй. Поэтому все доделки и переделки тянулись до осени, а сейчас появилось время детально описать решения, которые я опробовал.

(далее…)

Тестовый PHP скрипт для загрузки файлов

11.01.2010

Уже достаточно давно, на одном проекте надо было протестировать загрузку файлов и я сделал небольшой PHP скрипт для тестирования этого процесса. Ничего особенного он не делает, только получает файл и сохраняет его в папке под временной меткой загрузки с дампом переменных. Вроде ничего особенного, но вот уже который проект, а он всё равно полезен, поэтому я решил его выложить тут, может ещё кому-нибудь пригодится. Да и сам, если посею, так буду знать где взять(не раз уже блог меня спасал в подобных случаях). :)

(далее…)

Разница в выборке «.*» в XML и во flash.utils.Proxy

08.01.2010

В XML выборка элементов через знак звёздочки говорит о том, что надо выбрать все дочерние узлы, не зависимо от типа узла или пространства имён XML элемента. Класс flash.utils.Proxy даёт нам возможность пользоваться выборками в своих классах. Я обнаружил разницу в поведении и дальше делюсь наблюдениями.

(далее…)

Информация о происхождении экземпляра QName

07.01.2010

Flex cookbook entry: How to know QName instance origins.

В ActionScript 3 у простого типа QName есть возможность хранить информацию о происхождении экземпляра, т.е. можно узнать, это имя атрибута или узла/свойства. Но я не смог найти простого и прямого способа «выдернуть» эту информацию из экземпляра QName. Поэтому дальше горожу свой огород. :)

(далее…)

flash.utils.Proxy и Object.constructor

04.01.2010

Небольшой совет для всех кто активно использует или собирается использовать класс flash.utils.Proxy – всегда реализуйте свойство constructor возвращающее тип(экземпляр типа Class) данного объекта.

(далее…)

Динамическое создание экземпляров класса Vector

13.09.2009

Flex cookbook entry: How to dynamically create instance of Vector class.

В десятой версии Flash Player’а появилось много нового и я сегодня немного эксперементировал с одним из «новых» классов — __AS3__.vec.Vector. Этот класс пришёл к нам, как скоростной аналог типизированного массива. Я не делал скоростных замеров, т.к. таковых в сети хватает. Я попробовал создать экземпляр класса Vector динамически, т.е. без прямого указания типа его элементов.

(далее…)

Powerflasher Solutions поддерживает JSInterface

15.08.2009

Ребята из Powerflasher Solutions предоставили бесплатно лицензию на FDT 3 Enterprise, по программе поддержки Open Source проектов и добавили ссылку на JSInterface, как на "some of the best" проект. :-P
Очень приятно, спасибо!

Upd. 3.09.2009
Вчера изменили формат странички и теперь там висят баннера - вдвойне приятно. :)

Загрузка изображений в TextField, в виде строки Base64, встроенной в HTML код

28.05.2009

У многих браузеров есть классная особенность - они умеют отображать картинки из строки кодированной в Base64. Такие изображения отличаются только содержимым атрибута SRC:

<img src="data:image/png;base64,iVBORw0KGgoAAAANS..." alt="Изображение" />

Мне стало интересно провернуть такой же трюк в TextField'е во Flash приложении.

(далее…)

Использование REST во Flash приложении

23.05.2009

REST - Representational state transfer, техника используемая многими web-сервисами, напрямую не поддерживается в ActionScript 3. Класс отвечающий за генерацию запросов по HTTP способен передавать только GET и POST запросы, а для REST ещё необходимы PUT и DELETE. Но есть возможность реализовать недостающую функциональность с помощью класса URLStream, но для этого придётся ещё много всего реализовать, что уже и так реализовано. В общем, я вчера поискал решения по этому поводу и нашёл две, с виду, не плохие библиотеки:

as3httpclientlib - практически полноценный HTTP клиент, поддерживает полный спектр необходимых запросов. Распространяется по лицензии MIT, т.е. абсолютно бесплатен для коммерческого использования.

RESTService - библиотека созданная специально для использования REST во Flash/Flex приложениях.

Радует, что обе библиотеки имеют примеры и документацию. :)