Недавно Олег Галабурда увлекся идеей полнофункциональной работы Flash в браузере без HTML-обертки. Ему удалось решить эту задачу путем вызова из Flash-приложения Javascript-кода, помогающего SWF-файлу устроиться в браузере со всеми удобствами без помощи родительского html-документа.
Будучи основательным разработчиком, Олег создал Javascript-компонент JSInterface для доступа к JavaScript-объектам среды браузера прямо из Flash. Предлагаю познакомиться поближе с этой разработкой: JSInterface – JavaScript во Flash. Вас ждет средних размеров и хорошего качества статья с иллюстрациями и примерами кода.
Олег 'a_[w]' Галабурда пытается решить задачу полнофункциональной работы SWF-файла внутри браузера без HTML-обертки. Приводимое им решение можно увидеть в статье на XPoint.ru. Но кто ответит на вопрос в самом конце статьи относительно свойств objectSource и objectDestination в IE?
objectSource
objectDestination
Update: Весь нижеследующий малодушный всхлип надо, во первых, зачеркнуть, но я не стану этого делать из дурацких эстетических соображений, а также его следует совсем уничтожить, но этого я не тажке не сделаю, на сей раз для сохранения связанности пространства. Скажу лишь так: запасайтесь на зиму оперативной памятью и вас не постигнет описанная ниже паническая участь. Дальше не читайте, вопрос отпал.
Update: вот и сообщение в тему от разработчика Flash Player Тиника Уро — о производительности Flash Player в новом браузере Google Chrome и не только. За ссылку спасибо Артему Бригерту.
Неожиданная и приятная находка: на сайте "Design For Masters" выложена переводная статья "Внедрение Flash с помощью SWFObject 2" — полный перевод официальной доки!
Это супер-дополнение к уже имеющемуся у нас экспресс-материалу, созданному в 2005 году Майклом Клишиным — "SWFObject: все о внедрении SWF, детекции версии плеера и ExpressInstall". (Вернись, Майкл, наш Флекс возмужал)
Существует и другой способ вставки Flash, основанный на использовании библиотеки jQuery. Данный способ очень выгоден тем, кто уже использует в своих проектах эту мега-либу (а попробовав ее однажды — так трудно отказаться!) Простая вставка Flash в HTML-страницу с jQuery выглядит так (остальные примеры на странице jQuery Flash Plugin):
$('#hello').flash({ src: 'hello.swf', width: 320, height: 240 });
Что такое jQuery, и почему это так вкусно, можно быстро узнать здесь, здесь, здесь, здесь, здесь, здесь и здесь — все на русском, и это только верхушка айсберга.
// эти драгоценности настойчиво предоставлены добрым, но справедливым Ку-зьмой (а как он лаконичен)
Увидев у Инжуна пост о скором выходе Dreamweaver CS4, Fireworks CS4 и SoundBooth CS4, я сходил проверить, как там он, вышел али нет на Adobe Labs. Оказывается, таки еще нет. Но времени осталось совсем немного — а нишевый домен dreamweavercs4.com свободен (если я правильно понял смысл первой ссылки в результатах поиска — может быть, все наоборот?)
Как бы там ни было — DWCS4 будет для меня сюрпризом. Мне сложно представить, что еще можно добавить к инструменту, столь близкому к совершенству. Хотя... на самом деле, добавить есть что. Например, те же инструменты для правильной поисковой оптимизации. Или тулы для Wordpress. Ага, или конструктор мета-сетей. Но до чего на самом деле додумалась Adobe? Увидим :)
Подсмотрел у Шаграта: народные умельцы сделали флэш-тему для WordPress. По-моему, мимикрия удалась. А с внедрением в новом Flash Player 10 продвинутых текстовых функций будет еще лучше. Эта блог-тема — одна из иллюстраций возможностей проекта htmlwapper, есть и аналогичный флэш-сайт.
Но все равно меня терзает один вопрос. Что это на самом деле — кричащий пример безжалостно убитого времени или действительно перспективная разработка?
На главном сайте веб-дизайнеров A List Apart появилась статья о том, что IE8 будет поддерживать специальный мета-тег X-UA-Compatible для корректного рендеринга страниц, созданных ранее для браузеров типа IE6 / IE7. Вот так вы говорите, что сайт создан для IE7:
<meta http-equiv="X-UA-Compatible" content="IE=7" />
Видя такой код в начале html-документа, IE8 будет обрабатывать доку особым образом — в режиме работы IE7.
Это очень разумный ход, друзья. Молодцы все-таки эти парни из Майкрософт. Теперь веб-дизайнеры, вместо того, чтобы переделывать свои старые сайты из-за их несовместимости с новым браузером могут просто вставить одну строчку кода — и сайт будет работать, как ни в чем не бывало. Друзья! Это долгожданный свет в конце интернета, если у интернета есть конец. Я подготовил по этому поводу краткую утреннюю речь.
В общем-то, это наша проблема здесь, в Microsoft. Мы что-то слышали об обратной совместимости ПО, но там было много букв. И мы решили, что вас больше, вы умнее, и можете лучше нас решать такие проблемы. Извините. Мы сдаемся. Все свободны.
А, не забудьте обновить код во всех своих сайтах. Да здравствуют веб-стандарты!
С другой стороны, это очень крутое нововведение: сейчас верстальщикам приходится не только применять html-хаки для преодоления несовместимости браузеров, но и обновлять хаки на старых страницах (я скажу еще раз, что именно поэтому ненавижу хаки во веки веков, это все продажа мозга в розницу). Сейчас же веб-дизайнерам предлагают "легкое" решение проблемы несовместимости разных версий IE: набор старых хаков, упакованных в одну строку кода. Только вот проблему эту создавали не веб-дизайнеры. И решать ее дожен не каждый дизайнер, а одна компания — производитель кривых браузеров.
Интересно будет посчитать, сколько времени в общей сумме будет потрачено верстальщиками всего мира на новые танцы с дудками вокруг IE8. И сколько времени понадобилось бы нескольким пряморуким программерам, чтобы решить эту проблему несовместимости централизовано на уровне браузера.
Даешь сиюминутную выгоду. Василий Пупкин, торжествуй, и никогда не устанавливай правильные браузеры.
Пока писал, слушал: 1. Net Pistols - God Save The Microsoft, 2. Net Pistols - Anarchy in The Web.
Update 1: W3C опубликовала черновик HTML 5. Update 2: создал тему "Microsoft пытается подмять веб-стандарты под IE8" на Хабре. Update 3: Джон 'jQuery' Резиг по поводу X-UA-Compatible. Update 4: Константин Кичинский подсказывает, что по умолчанию может использоваться режим совместимости с IE7, т.е. режим IE8 нужно "включать" явно (подробности в его комментарии).
Как многие знают, чтобы поместить нечто (выпадающее меню, блок текста и т.д.) поверх flash внутри html-страницы, нужно использовать атрибут/параметр wmode тэга object/embed -- после этого становится возможным управление глубиной флэш-клипа путем его вложения в div-контейнер и присвоения последнему значений глубины и абсолютного позиционирования.
wmode
Однако существует два недоразумения по этому поводу:
transparent
wmode="opaque"
Подводя итог: атрибут wmode дает возможность разместить html-блок (div, javascript-меню и т.д.) над flash-объектом, И ЭТО РАБОТАЕТ ВЕЗДЕ, достаточно только использовать значение opaque параметра "wmode":
opaque
<div style="position:absolute; z-index:1"> <object ... > <param name="wmode" value="opaque"> <embed src="swf/gallery.swf" ... wmode="opaque" /> </object> </div> <div style="position:absolute; z-index:2"> Я ДивНомерДва, хочу закрыть собой ваш флєщъ </div>
И это ОЧЕНЬ полезно, когда вы хотите прикрыть свой флэш хоть чем-нибудь во всех-всех-всех браузерах мира!
Совсем древнее: 17-20.09.2002, 23-30.09.2002, 01-04.10.2002, 07-11.10.2002, 14-19.10.2002, 20-26.10.2002, 27.10-02.11.2002, 04-08.11.2002, 11-16.11.2002, 18-23.11.2002 25-30.11.2002, 02-07.12.2002, 09-14.12.2002 Сайт заработал 17.09.2002