Posts Tagged ‘as3’
Flex swf внутри pure AS3 проекта. Или как поженить flex и flash cs5.
В текущем проекте возникла необходимость вставить флекс swf внутрь проекта созданного во Flash IDE. Мало того, мне потребовалось, чтобы флекс ролик подгружаемый внутрь основной флешки самостоятельно адаптировался к размерам экрана и реагировал на изменение окна браузера вместе с остальными компонентами.
Ситуация эта возникла в первую очередь по банальной лени. Кусок интерфейса в этом модуле носит типовой флексовый характер - скроллбары, списки, кнопки, только не стандартные а а специально задизайненные дизайнерским дизайнером… Во Flash Catalyst такой интерфейс из исходника в иллюстраторе сооружается за 20 минут. Дальше дело техники - дописать чуть чуть кода и модуль готов. Очень уж не хотелось в рукопашную прописывать все эти интерфейсные элементы.
Сам по себе ролик подгружается в основной проект без проблем, но с тем, чтобы получить доступ к публичной функции флексового ролика - onResize() - пришлось повозится. Но, как говорится google в помощь и спустя пару часов я откопал решение.
На помощь пришло магическое заклинание:
(loader.content as MovieClip).application.onResize();
Оказывается после волшебного (loader.content as MovieClip). можно писать все что угодно - компилятор, как говорится, схавает! Главное, чтобы вы знали что пишете.
Внутри поля application хранится ссылка на… инстанс основного апликейшена флексового ролика. Соответственно можно получить и доступ ко всем его публичным переменным и методам. Т.е. все те функции, что прописаны public внутри основного mxml flex проекта - будут доступны. И это отлично работает!
P.S. На обозначенный в заглавии вопрос в интернетах в основном отвечают так: “это никому не нужно” или “весь проект надо делать во флексе”. Может быть, может быть. Однако флекс для моего текущего проекта слишком громоздкая штука, с массой совершенно ненужных мне деталей. Достаточно сказать, что упомянутый выше флексовый кусок проекта в скомпилированном виде вместе со всеми своими бубенцами и примочками весит раз в пять больше моего основного файла swf. Т.е. экономия времени в данном случае оборачивается увеличением размера загружаемого модуля. Тем не менее это был интересный опыт. В случаях когда важна скорость разработки такой способ может помочь.
Flash-console логгер/дебаггер - швейцарский нож разработчика
Обнаружил на ruFlash интересную утилиту Flash-console логгер/дебаггер. Надо будет протестировать. 
Обычно я пользуюсь либо традиционным трейсом, во flash IDE и SWFProfiler для отображения информации о состоянии памяти и framerate, либо встроенным дебаггером той же flash IDE. Очень спартанский набор, да.
Однако с переходом на 64-bit windows7 начались постоянные проблемы с дебаг-версией flash плеера - постоянно вешает мне файрфокс. Это очень, очень раздражает. Тут как раз может такая утилитка пригодится, т.к. она не требует этой дебаг версии.
Интерфейс этой штуки конечно не назовешь удобным и понятным, но это не главное. Посмотрим, как она покажет себя в деле.
На вскидку несколько возможностей flash-console, которые меня приятно удивили:
- просмотр дерева объектов под курсором мыши
- экранная линейка с увеличенным просмотром
- графический мониторинг памяти + fps
- принудительный запуск гарбадж-коллектора
- инспектор объектов! Да, блин, можно посмотреть поля и методы объекта и текущие значения переменных!
- несколько каналов трейсинга - очень актуально, у меня иногда output трейса так забивается мессагами, что я иногда неделю не могу найти из какого места в коде этот спам у меня генерится, а тут фильтровать можно.
P.S. попробовал лично. Просто офигенная штука! Меня впечатлила примочка - показывающая полностью все объекты находящиеся по курсором в виде дерева. Мне лично это помогло обнаружить, что некоторые негодяйские мувиклипы вовсе не удалялись со сцены, как я полагал, а висели там с нулевой прозрачностью и захламляли память. Так что штука мегаполезная. Однозначно рекомендую!
Realaxy ActionScript Editor is coming!
23 апреля на мероприятии Creative Future Евгений Потапенко и Иван Дембицкий представят свою новую разработку Realaxy ActionScript Editor.
11:45—12:45 «Новое поколение редакторов: Realaxy ActionScript Editor глазами создателей.»
Выездной подкаст Евгений Потапенко, Иван Дембицкий, Зал №8
http://creativefuture.ru/speakers#potapenko
Иван Дембицкий:
думаю что мы раздадим желающим бета версию редактора.
Скажем так: желающие смогут стать тестерами закрытой беты.
И возьмите флэшку на всякий случай.via ruFlash
А также просьба по возможности распространить эту информацию через свои блоги. За это тоже обещали выдавать бету. (Написав пост в своем блоге киньте ссылку на новость сюда: ivan.dembicki@gmail.com с сабжем [betatest].)
UPDATE
Скринкасты realaxy actionscript editor:
SEO и flash
Зачем я вообще касаюсь этой темы?
Да все просто. Вот написал я клиенту сайт. Вывесил. Все, готово. А клиент спрашивает: а чей-то мы в поисковой выдаче не обнаруживаемся?
Строго говоря, это не ко мне. Я дизайнер, я сайт сделал, запулил на сервер и как говорится “от меня сигнал ушел”. Однако это все-таки не серьезно, на мой взгляд, так относится к делу. И решил я посмотреть что можно сделать с флешовым веб-сайтом, чтобы он как минимум не был черным ящиком для всяких яндексов и гуглов. Если поисковые роботы не поймут, о чем эта страница, то ее вряд ли вообще кто-нибудь, когда-нибудь увидит в поисковых выдачах.
Всем известно, что flash содержимое страницы это очень не правильная штука с точки зрения поисковой оптимизации, фактически, заходя на веб сайт поисковый робот видит одну html-страницу, все содержимое которой - один внедренный swf ролик. Причем зачастую даже тег <title> не заполнен, соответственно для робота такая страница - ни о чем. Конечно, можно возразить, что сегодня google вроде как может индексировать содержимое swf ролика, но если весь контент ролика подгружается через xml, то поисковый робот опять в пролете.
Что же делать?
А делать надо вот что:
1. html страница в которую встроен ролик должна содержать осмысленно заполненные поля <title>, <meta name=”description” content=”"> и <meta name=”keywords” content=”">. Например страница посвящена яблокам.
<title> Страница о яблоках</title>
<meta name=“description” content=“яблоки, все о яблоках, яблоки и жизнь, все из яблок, яблоки и культура”>
<meta name=“keywords” content=“яблоки, плоды, фрукты, apples”>
Я не буду здесь распространяться о том, что именно надо вписывать в эти теги, поскольку не специалист, но заполнить их хоть каким-то осмысленным содержанием относящимся к сайту - дело минутное.
2. Тег <noscript> нужно заполнить содержимым, дублирующим содержание сайта во флеше. Обычно ролик встраивается в страницу с помощью скриптов. Все относящиеся к этому делу функиции на странице находятся в разделе <script></script>. Если скрипты в браузере отключены, то на странице отобразится содержимое тега <noscript>. Но самое главное для нас то, что поисковый робот индексируя страницу прочтет все что там есть, и увидев нормальный, понятный для него контент внутри тега <noscript> он будет очень доволен! В качестве примера зайдите сюда, на сайт adobe.inspire и потом просмотрите код страницы и вы увидите то о чем я вам здесь толкую. Именно так все устроено у тех, кто понимает в этом толк. Причем если отключить скрипты мы получим совершенно лысую страницу без всяких украшательств, содержащую только текст, оно и понятно, вероятность того, что кто-то будет смотреть эту страницу с отключенными скриптами стремится к нулю… Главное что поисковые боты получат, что им нужно.
Опытным путем я выяснил, что браузер Chrome не поддерживает тег <noscript>, об этом и в гугле пишут. Если запихнуть содержимое страницы прямо внутрь div’а в который внедряется флэше, то при отсутствии флеш ролика будет показано это содержимое, так что можно даже без <noscript> обойтись.
Еще раз хочу подчеркнуть, что речь идет именно об оптимизации для роботов поисковых систем. Если ваш сайт попадет к примеру на thefwa.com или к какому-нибудь блогеру-тысячнику в пост, то трафик к нему придет и без этих ухищрений. Но вы туда сначала попадите…
Собственно вот и все, что имею сказать. Может есть и другие рецепты, но я о них пока ничего не слышал.
Фреймворк или не фреймворк вот в чем вопрос
Писать ли flash сайт на фреймворке или мучаться самостоятельно?
На самом деле нет никакого вопроса. Для меня по крайней мере, как для начинающего в этом деле:
Если вы начинающий - Конечно, НЕ фреймворк.
Конечно, надо первые проекты писать с чистого листа, чтобы на собственной шкуре понять необходимость использования шаблонов проектирования, чтобы понять как эти шаблоны работают, чтобы знать “что у лошадки внутри”. Чтобы понять насколько фреймворки экономят время. Но фреймворки экономят время только для тех, кто ЗНАЕТ.
Честно скажу, приступая к первому коммерческому проекту я понятия не имел как я его завершу, и я пытался сначала подступиться к pureMVC, но потом счел за лучшее отложить это мероприятие и начал читать книжку OReilly ActionScript 3.0 Design Patterns. Это ТО, с чего стоит начинать. По крайней мере оттуда можно вытащить готовые работоспособные конструкции, на которые вполне можно нарастить мясо своего проекта.
Отсюда мораль: сначала все пробуем собственными ручками, потом фреймворки.
