Библиотека ExtJS/Sencha

индекс
90,80

ExtJS, Adobe AIR и технология PixelBender — красиво, ничего не скажешь!

animsДавно не появлялось чего-то новенького об ExtJS, видимо все готовятся к анонсированной конференции (я уже писал об этом), а те, что останется в уютных домашний креслах — к анонсу ExtJS 3.0. Но сегодня заглянув в официальный блог компании, я нашел интереснейшую заметку. Как уже известно, в последние версии ExtJS начали активно внедрять поддержку платформы Adobe AIR, что не может не радовать, ведь именно симбиоз этих двух потрясающих инструментов может дать, в умелых руках, конечно, просто отличные результаты.

В Flash 10, а значит и в Adobe AIR 1.5 в его именно флешевую часть была внедрена интересная технология, по сути, полного управления всем отображаемым на экране — PixelBender. При помощи специального языка программирования GLSL (OpenGL Shading Language) разработчик может описывать операции над пикселями, при этом программа может быть применена не только к картинке, а к любому флеш-объекту, в том числе и целому окну или веб-странице. Кстати да, вы не ослышались, речь идет именно об OpenGL, а это нас приближает вплотную к возможности создать серьезные графические приложения, оперируя только обычными для веб-разработки инструментами. Если кто разбирается в 3D, то эта технология очень близка к пиксельным шейдерам, которые также программируются на своих языках.

А как, простите, это связано с ExtJS? Да очень просто! Если вы при помощи специального инструментария создадите описание собственной функции PixelBender, то впоследствии можете очень просто применять ее к объектам созданным в ExtJS (пакет Ext.air.*). Для демонстрации совместной работы обоих технологий, выпущен Pixel Bender Explorer, демонстрирующий ряд эффектов, которые применяются к видео, графике или окну, создаваемому силами ExtJS. Вы можете гибко изменять параметры эффектов и просматривать их результат в реальном времени.

Эффекты могут быть совершенно различные, в предлагаемом демонстрационном пакете их несколько десятков, как производства самой Adobe, так и творчество других разработчиков. Интересно взять именно третий из предлагаемых вариантов — Demo with Browser, тогда будет создано новое окно (заметьте, средствами ExtJS), в котором будет открыта заглавная страница Google. А дальше — дальше просты выбирайте любой эффект в списке и смотрите, что произойдет с окном, при этом обратите внимание, что трансформируется именно все окно полностью, а не только его содержимое! Но даже исказив до почти неузнаваемости, страница все равно работоспособна, в окне можно ввести текст, нажимать на кнопки и даже работать. Это значит, что операция именно визуальная и происходит после полного формирования страницы, оставляя всю функциональность на месте.

browser

А пример реализации такого очень прост (для знакомых с Ext):

var win = new Ext.air.NativeWindow({
file: '../html/browser.html',
transparent: true,
chrome: 'none',
width: 640,
height: 480
});
win.animFn({
paramName: 'amount',
reset: true,
startValue: 5,
endValue: 0,
duration: 1,
mode: 'easeOutStrong',
url: 'app:/kernels/smudger.pbj'
});
win.bend();



Для чего можно применить такой инструментарий? Ну, самый простой пример — красивый splash-screen при старте вашего AIR-приложения, хотя это слишком поверхностный пример. Возможность гибко управлять каждым пикселем может быть использована для разработки различных графических приложений, развлекательных (альбомы с переходами и т.п.), а уж какие перспективы открываются в игровых проектах, просто дух захватывает. Так что ребята с ExtJS молодцы, что пытаются максимально раскрыть и утилизировать мощь платформы Adobe AIR!

Кстати, для разработчиков есть замечательный ресурс, Pixel Bender Exchange, где можно скачать или купить нужные фильтры, ведь эта технология начала свою работу намного раньше AIR, пройдя обкатку в таких профессиональных пакетах обработки мультимедии, как After Effects и Photoshop. Кстати, мне очень и очень сильно хочется ответить да на вопрос — а не таким ли способом можно сделать «on-line Photoshop»?..
+40
19 февраля 2009, 22:38
32

комментарии (55)

+1
GubkaBob #
«даже исказив до почти неузнаваемости, страница все равно работоспособна, в окне можно ввести текст, нажимать на кнопки и даже работать»

это мягко говоря, преувеличение — гарантии никакой.

господи, но как же оно тормозит…
+2
aleks_raiden #
не знаю, как на счет гарантий — но все что я делал с страницой гугла — она работала, текст вводился и кнопки нажимались.

тормозит если над видео производить обработку.
0
GubkaBob #
я не про это. я про то что угадать — где нажать на экране, чтобы попасть на кнопку — невозможно.

у меня на ноуте тормозил даже fade и wave с картинкой.

0
potapenko #
А что за видеокарта?
0
GubkaBob #
Intel® GMA 950
0
potapenko #
Cтранно, директ икс девятый поддерживается.
Yо факт медицинский — GPU вычисления не работают — вычисляется процессором.
У меня на ноуте Nvidia 9400 — и все шустро так…
0
ad_Wolf #
9 директ поддерживается не аппаратно, а программно, по-моему
+1
pixelcube #
Тормоза могут быть связаны с выполнением PixelBender на CPU вместо GPU из-за неподдерживаемых видеокарт.
0
Vadik #
blogs.gotdotnet.ru/personal/Aib/CommentView.aspx?guid=9666d72d-1043-493b-a57f-0ee098b24e37 Еще одно сравнение Adobe Flash и Silverlight 2
0
GubkaBob #
спасибо, прочитал.
хотя надежды, что flex будет нормально работать и поддерживаться под *nix и mobile-платформами, у меня пока больше, чем для silverlight.
+28
Smartfon #
+10
motoMac #
Хабраколлайдер)
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
+1
aleks_raiden #
графические редакторы, спецэффекты, видео-обработка, онлайн игры
0
pixelcube #
параллельные вычисления на GPU
0
GubkaBob #
жалко, что есть только плюс/минус и нету оценки-смайлика :)
НЛО прилетело и опубликовало эту надпись здесь
+1
kav #
для знакомых с Ext


А для незнакомых можете ткнуть куда нажать чтобы посмотреть?
0
aleks_raiden #
ссылок в материале недостаточно? extjs.com/playpen/air/PixelBenderExplorer.air
+2
ooprizrakoo #
Была надежда, что это будет работать в обычном браузер, вроде стандратного флеша или яваскрипта. Но увы.
+2
MixailV #
Конечно это работает в обычном браузере (FP10), вот первая демка, что попалась под руку — www.derschmale.com/demo/rippler/Ripple.html
0
ooprizrakoo #
Блин, ну что же сразу на неё ссылку автор поста не дал :)
0
ooprizrakoo #
Спасибо :)
0
znvPredatoR #
Класс! Я, помню, когда учил openGL, еще в школе, написал подобную штуку… прям ностальгия :)
0
Silenius #
Да, раньше такое на Java-апплетах делали. Все циклично :))
0
coldFlame #
Надеюсь, что GLSL используется не по приколу, а ради аппаратного ускорения. Да иначе и быть не может.
+3
FanKiLL #
Это всё конечно классно. И прошлый пост про нативные win приложения на javascript.
Но блин когда же уже будет какой то общий продукт или стандарт. А то от библиотеки и всяческие интепритаторы на компе скоро будут весить больше самой ОСь.

Флешь, сильверлайт, JavaFX сама java, .net, питон, AIR что ещё?..

О боже мы все умрем… чёрт!!1
+3
aleks_raiden #
разнообразие это хорошо! конкуренция! при чем тут питон? в мире RIA есть не так много игроков :)
НЛО прилетело и опубликовало эту надпись здесь
0
egoserg #
С одной стороны конкуренция это хороше. А с другой стороны не сильно.
Взять на примере браузеров. Былбы один браузер и все горя незналибы. (так чтобы даже сравнить несчем было)
А так, что имеем.
Тестим под И.E 6, И.E 7, Фоксе, хроме, опере (несколько версий)
Для И.Е постоянно какието костели приходится изобретать.
Разве это хороше? Почему нельзя использовать какието одни стандарты.
0
primtech #
Видите ли в чем дело. В IE6-7 нынешние стандарты использовать действительно нельзя. Потому что это браузеры какого-нибудь 2004-го года, которые обновляют только люди заинтересованные (читать разработчики :-)).
Что до остальных браузеров — последние версии уже довольно близки друг к другу по рендерингу.

А по существу — чем старше становится вся компьютерная отрасль, тем больше появляется разнообразия. Людей-то много :-) Так что это естественный процесс.
0
CGS #
Зато мозги не зачерствеют. :)
–1
Becoming_Insane #
гага, щас кодеры проектов аля «мой рабочий стол в вебе» понаедут с соплями и будут продвигать идею «покупайте крутые компы, а мы ща усё сделаем»
+9
DMS #
Каждая стандартная кнопка у extJS — это таблица. Каждый выпадающий список — комбинация div и input. Отображение каждой вкладочки — 5 вложенных друг в друга элемента. extJS хорошо и правильно использовать в админке у сайтов. На крайний случай — делать web os какую-нибудь забавы ради. Но на десктопе-то зачем вырезать гланды через задницу?
0
aps #
>extJS хорошо и правильно использовать в админке у сайтов
Желательно конкретизировать для каких сайтов и кто эти сайты будет админить.
Использовать бездумно такой тяжелый фреймворк например для блога, сайта-визитки, простенького магазина — каюк.
Возможно у extJS есть какая-то ниша, но она очень узкая.
+7
my_own_parasite #
это нас приближает вплотную к возможности создать серьезные графические приложения, оперируя только обычными для веб-разработки инструментами


ExtJS — это уже необычный для веб-разработки инструмент. Да, всё это написано на чистом JS, но сама идея рисовать страницы через библиотеку, а не ручками в html — она претит принципам обычной веб-разработки. Flash'у, а тем более AIR'у вообще пока можно только мечтать, чтобы стать ОБЫЧНЫМ для веб-разработки инструментом. Потому что всё идёт к тому, что скорее ОБЫЧНЫЕ инструменты отберут у Flash'а все его вкусности — векторную графику и анимацию, аудио/видео плейеры, расширенная интерактивность, а не Flash станет обычным средством разработки.
–1
avenu #
А во Флексе это работает?
+1
pixelcube #
PixelBender — поддерживается плеером, даже в браузере.
Flex — это всего лишь фреймворк на флеше. Конечно, да, будет и там работать.
0
ScREW #
Не знаю…
ExtJS создавался как фрэймворк для разработки RIA. В RIA большей своей частью это какие-то тяжеловесные Enterprise системы (точнее web-интерфейсы к ним). Зачем в Enterprise системе такие графические эффекты? Кто-нибудь может предположить?
Такая визуализация очень-очень хороша для промо-сайтов, развлекальных рессурсов и т.д. Но зачем в вэб-интерфейсе корпоративной почты такая графика, лично я сказать не берусь.
0
Thecentury #
В WPF (библиотеке для создания интерфейсов под .NET) есть нечто подобное — ShaderEffect — тоже некоторый шейдер, который можно применять для любого элемента управления. Шейдеры можно писать на HLSL. Работает весьма быстро, основано на unmanaged DirectX. Помимо очевидного применения (разные украшательства — тени, блики, искажения, отражения и т.п.), можно найти и действительно полезное использование в серьезных приложениях — скажем, у нас ShaderEffect применяется для нелинейного искажения тайлов карты, чтобы перевести их из проекции Меркатора в обычную линейную по широте проекцию.
–5
Pilat #
ExtJS — это зло и провокация.
Я как пользователь предпочитаю сайты без Javascript и без наворотов — просто потому, что ими легче пользоваться и не надо отключать Noscript… Да и в реально используемых сайтах подход близок к моим идеалам — как только сайт ориентирован на деньги в любой форме — банковский, или суппорт, — так с него исчезают все навороты.
0
Maksym #
Факт. Чем в более практической и нужной людям плоскости лежит предметная область и фунциональность сайта, тем меньше на нем рюшек и наворотов.
0
stoune #
К сожалению вы не полностью правы. Вот полюбуйтесь на творения 1-го дизайнера всея Руси www.fuib.com/ru/. Пользуюсь и плююсь, каждый раз вспоминаю по каким рисунком нужная мне функция.
+1
romad #
зло и провокация высказывать такие абсолютные заявления. ситуации разные бывают. например, представьте, что при плюсовании/минусовании коммента в хабре, у вас все время будет перегружаться страница
–1
Pilat #
А Вы представьте, что для плюсования/минусования кармы кто-то додумается использовать ExtJS.

HTML и Javascript пока не в том состоянии, чтобы делать на них сложные приложения без серьёзных финансовых затрат. А те, кто имеет большие деньги, понимает, что ExtJS — зло.
+1
znvPredatoR #
Хм. Практически любое веб-приложение пишется с использованием javascript. Факт.
Более того, javascript и ajax делают работу в сети более удобной и приятной. Факт.

Тогда зачем избегать этих технологий? Не пойму…
0
Pilat #
Не факт. Далеко не любое пишется с Javascript и, более того, даже те, которые пишутся с ним, могут работать и без него — конечно, на серьёзных сайтах. Банки, например, с онлайн-транзакциями.

Избегать не надо, надо использовать, но не по любому поводу и без повода. Если от использования JS страдает функциональность — лучше обходиться без него.

Специально для писателей: читайте мои посты полностью и не выдирайте фразы из контекста. Конечно, если понимаете что там написано.
0
einzam #
Банки. онлайн — тразакции, вы умных слов нахватались?
Простите, но это бред.
Удобство для конечного пользователя, и скорость разработки для девелопера, приоритетные факторы.
0
Pilat #
Глупости. Приоритетные факторы — выполнение поставленной задачи, а не удобства девелоперов. По Вашему если разработчику удобно, он может на задачу наплевать и сделать то что ему удобно, а не то что ему надо?

В случае с банками — удобство для конечного пользователя выражается в возможности запускать приложения там, где нет Javascript. По Вашему, наверно, удобством будет выскакивание окошек и визуальные эффекты? Да когда я перевожу деньги, а какой-то скрипт начинает чудить, это не удобство — это повод сменить банк.

0
einzam #
Что значит разработчику удобно и он может на задачу наплевать.
Есть задача, описанная в техническом задании.
Допустим — реализовать рабочее место операциониста, тонкий клиент.
Для команды девелопера, допустим в который есть хороший GWT разработчик, удобнее будет сделать именно с использованием этой технологии, и ее вероятнее всего выберут.
При том условии, что остальным требованиям тз это не противоречит.
**
В случае с банками — удобство для конечного пользователя выражается в возможности запускать приложения там, где нет Javascript
**
Лично вы разрабатывали такие приложения?
Могу вам открыть тайну, в тз как правило есть только один пункт, гарантированная работа в IE6(or 7). все.
–1
Pilat #
А я открою Вам другую тайну, пока скрытую, похоже, от Вас и Вам подобным — существует такое понятие как безопасность, существуют платформы, на которых нет ни IE, ни FF, ни Javascript, на которых ExtJS даже в страшном сне не приснится. Мир несколько разнообразней, чем Вам представляется.

0
aleks_raiden #
да, да, а еще, говорят, есть такие места и люди и вещи, где вообще нет электричества! и компьютеров! а в некоторых и воздуха нету!
НЛО прилетело и опубликовало эту надпись здесь
0
kolen #
Да, теперь вся реклама будет с шейдерами.

И нет ли там случайно уязвимостей, чтобы трояны ставить прямо на видеокарту?

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.