Pull to refresh
  • by relevance
  • by date
  • by rating

Сумасшедший ColorMatrixFilter.

Adobe Flash
Игрался сегодня с фильтрами и битмапдатой и случайно обнаружил баг (баг ли?) в FlashPlayer 9.

Попробуйте в каком-нибудь из проектов, где динамически перерисовывается BitmapData, применить к ней фильтр flash.filters.ColorMatrixFilter со следующей матрицей:

var cmf:ColorMatrixFilter=new ColorMatrixFilter([1,0,0,0,8000,
0,1,0,0,8000,
0,0,1,0,8000,
0,0,0,1,0])


Это приведет к сумасшедшему результату в сочетании с BlurFilter. Передавать нужно именно 8000 в массив по указанным индексам. Почему 8000? Потому что в хелпе по BitmapData я наткнулся на информацию о том, что в пределах от -8000 до 8000 на процессорах Intel Pentium3 и старше используется ускорение для проведения вычислений. Ну, я и не задумываясь вставил это значение по индексу [4]. Если сделать хотя бы на единицу больше, то эффект пропадет.

Думаю, что это, все-таки баг на уровне плеера.

Посмотреть результат можно по ссылке ниже.

*ВНИМАНИЕ!* Если вы страдаете эпилепсией, то флешку лучше не смотреть. Я вас предупреждал.

Посмотреть можно тут (нужно подвигать мышью, для демонстрации эффекта).

Исходник этого можно взять отсюда.

UPD: в адоуб отписан багрепорт
Установлено, что глюк проявляется не на всех марках процессоров и не на всех ОС.
Total votes 44: ↑40 and ↓4 +36
Views1.8K
Comments 98

Проснись, Нео! Ложки нет.

Lumber room
В последнее время довольно много внимания я уделял изучению Flash-приложений с аспектом использования 3D-объектов, и в частности так называемой дополненной реальности. Любопытство и удивление от увиденного, как это часто бывает, довольно быстро переросло в желание создать нечто подобное. Создавать клонированные приложения с уже реализованными идеями было скучно, да и вообще «не комильфо», потому было решено придумать что-то новое.

Основным минусом существующих Flash-приложений «дополненной реальности» является обязательное наличие специфичного маркера. Конечно, можно его распечатать или нарисовать, но для практического применения это весьма неудобно. А что если «маркером» сделать не квадратик на листочке, а самого себя? В мире довольно давно существует вполне отлаженная технология распознавания человеческих лиц на изображении и я решил что можно использовать в качестве маркера лицо наблюдателя.

После некоторых поисков, я нашёл в сети ActionScript 3.0 библиотеку Marilena, основанную на вышеуказанной технологии OpenCV (кстати, в виде AS3 она появилась она сравнительно недавно). Конечно, у неё есть свои минусы, в частности она потребляет довольно много ресурсов для поиска, а также в исходном виде не учитывает углов поворота объекта поиска. Тем не менее, с задачей поиска лица на изображении она справляется, и справляется на отлично.

Так, имея в руках все инструменты оставалось лишь придумать идею и она пришла сама собой. А ещё через несколько дней родился этот проект:

Проснись, Нео!

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

Фактически, это не совсем «дополненная реальность» в том виде, в котором она представлялась нам ранее, но ещё один способ взаимодействия человеческого интерфейса с компьютерным. Да и практического применения, о котором я говорил в начале, у этой игрушки не много — всё же ресурсоёмкость поиска даёт о себе знать. Тем не менее, как мне кажется, использование подобных технологий в будущем может (и непременно должно), повлиять на построение пользовательских интерфейсов.

Enjoy!

P. S. Архив с исходным кодом и краткое описание представлены в общий доступ на этой странице.

UPD: Сегодня обнаружил оптимизированный, гораздо более быстродействующий вариант библиотеки обнаружения лиц, а это открывает новые перспективы.
Total votes 21: ↑18 and ↓3 +15
Views478
Comments 11

Сохранение изображения из Adobe Flash Player на диск с помощью MDM Zinc

Lumber room
Здравствуйте, хабралюди.

Небольшая предыстория. У меня все началось с обычного Flash-сайта, максимальный функционал которого, заключался в открытии какого-либо окна с текстом по нажатию какой-либо кнопочки. Затем была первая игра в виде катающегося по полю танка с поворачивающимся дулом, затем первая MMORPG. После этого, там, куда я устроился на работу поняли, что MMORPG — не совсем то, что нужно, и все дружно решили выпускать игры для PC. На дисках, в красивых коробочках, все как положено.
Читать дальше →
Total votes 5: ↑4 and ↓1 +3
Views269
Comments 4

Управляем Flash-объектом на Javascript

Website development
Управляем Flash-объектом на JavaScript

Возможности JavaScript в 95% случаев позволяют решить любую задачу для Web 2.0. Но иногда хочется чуточку больше, чуточку красивее, возможно, чуточку быстрее. В этой статье на примерах я хочу показать, как восполнить этих 5% недостающего функционала средствами Flash.
Эта статья будет полезна разработчикам, которые пишут в основном на JavaScript и имеют минимальные знания ActionScript 3.

Для вдохновения


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

Этот пример интересен тем, что дизайн и управление контролируется средствами CSS и JavaScript. JavaScript при необходимости использует необходимый функционал из Flash.

Если Вам понравилось, идем дальше: мы рассмотрим как это работает на более простом примере.
Читать дальше →
Total votes 57: ↑53 and ↓4 +49
Views11.3K
Comments 24

Musifire — поиск музыки по заданным пользователем сайтам

Lumber room
Musifire screenshot

Сначала


Как-то давно, когда у меня внезапно поломался плеер last.fm, я решил, что напишу свой плеер с блекджеком и шлюхами. Так появился первый Musifire — программа, написанная на Flex+AS3 под Adobe AIR, которая искала музыку на паре отличных ресурсов, умела брать похожих исполнителей и песни с last.fm'а и составлять по ним плейлисты. Благодаря фидбеку от десятка юзеров удалось довести программу до более-менее приличного вида, хотя всякие мелкие неприятные баги остались там и по сей день. После этого я ее забросил, потому что мне совсем не нравилось, как был написан код, а переписывать было жутко лень. :) Его я, кстати, выложил на Sourceforge, каждый может сходить, посмотреть, чекаутнуть и поужасаться :)

Сейчас


Вторым стимулом в написании такого рода программы была практика разработки на as3, и практика обработки данных разных форматов. И вот недавно снова возникла потребность в улучшении своих навыков программирования и обработки данных.
И поэтому я решил, что все должно быть круче, чем в первый раз.
Total votes 36: ↑35 and ↓1 +34
Views345
Comments 66

Проигрываем видео с YouTube используя Action script 3.0

IT-companies


И все-таки заказчики не предсказуемые люди!

Работаешь над проектом, работаешь и все, как кажется, хорошо, а он тебе (заказчик) за неделю до сдачи проекта: «Хочу, чтоб у меня на flash-сайте видео проигрывалось. Да не простое, а с YouTube». Ну и что тут поделаешь… Ничего.

Для уточнения скажу, что сайт сделан в Flash CS4 с использованием Action Script 3.0.

Однако задачка, как оказалось не из легких. И как всегда пришлось выкручиваться.

Читать дальше...
Total votes 49: ↑45 and ↓4 +41
Views4.3K
Comments 42

Поиск пути в двухмерном пространстве: компонент AStar (action script 3.0)

Lumber room
Данная статья представляет собой описание компонента AStar, реализующего простейший поиск пути по алгоритму А*. Существует много исходных кодов с реализацией данного алгоритма, однако предлагаемый мною компонент прост в использовании и хорошо документирован. Несмотря на малое количество методов и свойств, компонент весьма гибкий и применим во многих областях (хотя, конечно, разработчикам игр он придется больше всего по душе). Компонент будет дорабатываться в соответствие с пожеланиями и замечаниями читателей. Поэтому прошу всех заинтересованных писать мне на почту или в комментариях.

Далее идет исчерпывающее описание компонента и ссылки, по которым файл компонента можно скачать
Total votes 9: ↑8 and ↓1 +7
Views1.1K
Comments 12

YouTube видео в вашем Flash/Flex-сайте

Lumber room
Недавно делал сайт с весьма урезанным бюджетом на Flex-e. Была проблема с размещением видео контента (экономили $ на хостинге, да и хостить 2 г видео...), намучившись с FXVideo Comp и SWFLoader, ударился в поиском в Гугл.

Решение было найдено:
TubeLoc — (YouTube LocalConnection) мост между вашим swf приложением и видео плеером YouTube (который написан на AS2).
Компонент понравился, разобрался за минут 10. Есть примеры и для чистых AS3 проектов, так и для Flex-а. :)
Из фишек — встраивание обычного ютубовского плеера, так и хромлесс.

Читать дальше →
Total votes 12: ↑9 and ↓3 +6
Views366
Comments 2

Вводим текст в TextInput по маске

IT-companies
image

Здравствуйте уважаемые читатели.



Не так давно (в одном из flex-проектов) понабилось отображать текст в поле ввода (TextInput) в определенном формате. Например, при вводе городского номера телефона нам необходимо в конечном итоге отобразить его следующим образом «(111) 22-33-44», при этом необходимо, чтобы пользователь видел шаблон ввода, например, «(___) __-__-__» и соответственно ориентировался по нему при использовании поля.

Что из этого получилось...
Total votes 49: ↑38 and ↓11 +27
Views2K
Comments 11

Трехмерный движок для Флеша — Papervision3D. Как и с чем его едят

Adobe Flash


Papervision3D — это библиотека классов для ActionScript 3.0, которая позволяет создавать полноценные 3D флеш-ролики.
Таким образом пользователю не требуется качать какие-то альтернативные плагины (как это было с VRML, например), кроме собственно Flash Player'a.

Итак, что же повзоляет нам Papervision3D:

— Добавлять во флеш-ролик встроенные примитивы: Plane, Sphere, Cylinder, Cone, Cube, Paperplane, Arrow
— Импортировать модели созданные в 3D-редакторах, вместе с анимацией.
— Накладывать на объекты в качестве материалов однородные цвета, битмапы, мувиклипы и даже потоковое видео
— Использовать источники света
— Накладывать встроенные во флеш фильтры (Blur, Glow и т.п.) на 3D объекты
— Управлять отдельными вершинами и фейсами объектов. Пример
— Назначать на 3D объекты и материалы обработчики событий (клик, наведение мышки и т.п.)

Не стоит забывать, что Papervision3D требователен к ресурсам пользователя, так что не стоит загружать ролик большим количеством моделей и придерживаться максимального количества фейсов 3000

В данной обзорной статье я хочу рассказать немного о самом движке и показать его использование, на примере создания вращающейся сферы. Предполагается, что читатель знаком с основами программирования на ActionScript 3.0

Читать дальше →
Total votes 79: ↑71 and ↓8 +63
Views11.9K
Comments 49

Обзор бесплатных библиотек для Flash/Actionscript 3.0 разработчиков

Adobe Flash
Появление в 2006 году третьей версии языка ActionScript заметно повлияло на развитие рынка флэш-приложений. Смещение акцента с создания дизайнерами небольших флэш-приложений в сторону разработки более сложных программных продуктов потребовало привлечения в отрасль все большего числа профессиональных программистов. Поддержка ООП, пакетов, пространства имен и другие нововведения породили создание различных универсальных и узконаправленных библиотек, которые служат основой для многих проектов.
Данная статья представляет собой обзор наиболее популярных и полезных библиотек, которые могут стать отправной точкой для начинающих флэш-разработчиков, а также оказаться полезными для профессионалов.
Читать дальше →
Total votes 58: ↑52 and ↓6 +46
Views7.2K
Comments 41

BinaryHTTPService или как помочь HTTPService-у принимать ByteArray данные

Lumber room
В процессе разработки у меня стояла задача найти способ получать бинарные данные от сервера через HTTPService. Сам по себе HTTPService в mx пакете не позволяет получать результат в ByteArray. Это можно увидеть в классе mx.messaging.channels.DirectHTTPChannel в функции internalSend.
Читать дальше →
Total votes 13: ↑8 and ↓5 +3
Views206
Comments 5

Прикручиваем Flex-компоненты к проекту на чистом Actionscript

Lumber room

Введение


Эта статья предназначена скорее для новичков, которые только начали создавать FlashPlayer-приложения, используя только свободные инструменты разработки, и может рассматриваться как мини-туториал по данной теме, повествующий о моих личных граблях, на которые я искренне желаю не наступать таким же, как я, осваивающим программирование на ActionScript.

В качестве примера будет использован HelloWorld достаточно простой проект, написанный на чистом ActionScript 3.0 без использования коммерческих инструментов разработки от Adobe.
Я разрабатываю FlashPlayer-приложения, используя FlashDevelop на Windows, и vim (менее удобно, зато дешево и сердито) на GNU/Linux.
Читать дальше →
Total votes 13: ↑11 and ↓2 +9
Views486
Comments 7

Сделать игру за девять дней возможно!?

Self Promo
screenЯ конечно не авантюрный человек, но бывает. И вот 10 дней назад случилось. Ровно 10 дней назад товарищ (Никита именующий себя Division), предложил поучаствовать в igdc конкурсе.
Вот моё впечатление…
Читать дальше →
Total votes 125: ↑104 and ↓21 +83
Views1.2K
Comments 131

Flash-приложение под iPad без проблем с размером экрана и пикселинга

Adobe Flash
Привет!
Прошло не так много времени с тех пор, как Flash стал доступен на яблочных мобильных устройствах. Судя по мануалу из официального пэкэджера от Adobe, сборка Flash-приложения на iPhone — достаточно тривиальная задача.
Однако, дела с iPad обстоят не так, как хотелось бы.

В статье приведен тайный рецепт, как создать Flash-приложение именно под iPad.
Доставляет!
Total votes 42: ↑32 and ↓10 +22
Views3.9K
Comments 38

Flash + IntelliJ IDEA

Adobe Flash
Sandbox
Всем привет. Если вы сталкивались с разработкой Flash-приложений, то скорее всего стандартные инструменты, предоставляемые Flash IDE для написания кода не вызвали у вас особого восторга. Существует несколько популярных сред для Flash/Flex-разработки: FlashDevelop, FlashBuilder, FDT, еще может быть парочка. В сети полно холиваров насчет того, какая из них лучше, но в данной статье я буду исходить из того, что вам приглянулась IntelliJ IDEA (или просто — «Идея»), но вы с ней совсем не знакомы и не знаете, с какой стороны к ней подступиться. Что же, попробуем разобраться вместе!

Flash + IntelliJ IDEA

Что Вы найдете в этой статье:
  • Краткое описание: где скачать, как установить, настроить IDE'ю
  • Как создать проект, начать работу
  • Как связать IDE'ю с Flash-проектом
  • Как компилировать, запускать проект, подключать библиотеки
  • Описание некоторых приятных мелочей, которые я регулярно использую
Чего Вы в этой статье не найдете:
  • Каких-то чисто Flex-специфик вещей
  • Описания сборки проекта ANT'ом (хотя вскользь мы этого коснемся), использования Maven и т.д.
  • Описания преимуществ IDE'и перед аналогами, её главных фич
Вроде бы здесь считается хорошим тоном предупреждать о трафике — под катом небольшая кучка скриншотов, весит ~500кб.
Читать дальше →
Total votes 38: ↑31 and ↓7 +24
Views22.8K
Comments 36

Использование паттернов в разработке архитектуры флекс-приложения

Competentum corporate blog

В нашей компании для планирования оперативной загрузки сотрудников менеджеры использовали Excel. Не было необходимости использовать что-то сложное вроде MS Project. Но с некоторых пор таблицы перестали удовлетворять их требованиям, а расширение возможностей скриптов, вшитых в электронные таблицы, — это не самая приятная задача.

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

Читать дальше →
Total votes 5: ↑4 and ↓1 +3
Views2.5K
Comments 3

Очень много полезных штук для AS3 #1

Adobe Flash
Недавно в моей RSS ленте сразу несколько людей написало о большой подборке всяких штук для AS3, которые могут изрядно упростить жизнь Flash-разработчикам. Одним из таких людей был injun (чей блог я читаю уже очень давно), в его посте я увидел ссылку на исходный пост одного зарубежного автора, и решил сам посмотреть, что там к чему.

Изначально, я хотел опубликовать все ссылки в рамках одной статьи, но ссылок оказалось слишком много, и статью придётся разделить на несколько частей. В этой статье мы разберём 3D движки, 3D игровые движки, 2D игровые движки, изометрические движки, 3D фреймворки для анимации, 3D физические движки, библиотеки для дополненной реальности, твиннеры (движки для программной анимации). Итак, понеслась.
Читать дальше →
Total votes 58: ↑53 and ↓5 +48
Views23.5K
Comments 29

Очень много полезных штук для AS3 #2

Adobe Flash
В продолжении статьи о полезных штуках для AS3, сегодня мы поговорим о 2D физических движках, библиотеках для работы со звуком, системах для работы с частицами, наборах для загрузки данных, ООП фреймворках, фреймворках для разработки сайтов, а так же о куче других полезных библиотек/фреймворках/классах, чьё назначение не вписалось не в одну из категорий.
Читать дальше →
Total votes 39: ↑36 and ↓3 +33
Views45.4K
Comments 17

Поиск пути в гексагональной сетке (AS3)

Algorithms
Sandbox
imageЭта статья представляет собой описание компонента HexaPath, реализующего поиск пути по алгоритму А* в гексагональной сетке. В сети мной было найдено большое количество описаний алгоритма на примере квадратной сетки и некоторое количество реализаций, но ни одного упоминания о шестиугольной сетке. И я написал свою реализацию. Выкладываю исходники. Вдруг кому-нибудь понадобится это, а писать самому будет лень.

Читать дальше →
Total votes 96: ↑88 and ↓8 +80
Views13.7K
Comments 48