Вышел FlashDevelop 3.0.0 Beta3 и библиотека для работы с популярными структурами игровых данных:
«Здравствуйте, ruFlex Вчера наткнулся на интересную библиотеку от немецких Flash-разработчиков. Вот описание. Захотелось поделиться ссылкой. 'AS3 Data Structures For Game Developers' — это пакет популярных структур данных, полезных при программировании flash-игр и приложений. Я начала проект, чтобы иметь под рукой библиотеку повторно используемых от игры к игре классов.'»
Вчера наткнулся на интересную библиотеку от немецких Flash-разработчиков. Вот описание. Захотелось поделиться ссылкой.
'AS3 Data Structures For Game Developers' — это пакет популярных структур данных, полезных при программировании flash-игр и приложений. Я начала проект, чтобы иметь под рукой библиотеку повторно используемых от игры к игре классов.'»
- Пишет Михаил Шевчук, цитируя автора библиотеки.
Юрий «Бармалей» Яровой написал отличную статью о том, как с помощью бесплатной оболочки-аналога InstallShield «Inno Setup Compiler» упаковать в один дистрибутив и ваше AIR-приложение, и необходимую для него среду исполнения Adobe AIR Runtime, включая установку всех компонентов в нужном порядке и лицензионное соглашение для пользователя. Статья совсем небольшая. Два TFT-экрана текста с предельно высоким содержанием полезной информации на килобайт символов (всего 7,5 кб). В комментариях к записи (пока их только 2 кб — помогите Юрию) moksha радует еще раз, приводя цитату из книжки "Apollo for Adobe Flex Developers Pocket Guide" о том, что создание полноценного инсталлятора от Adobe тоже планируется (правда, глядя на последние "произведения" Adobe в виде инсталляторов для Flash CS3/ Photoshop/ Creative Studio я не слишком оптимистичен в этом смысле).
Теперь распространение AIR-приложений становится не просто реальным, но и удобным. Юр, ты бы перевел статью на английский — пусть заценят.
И — пример выходящего совсем скоро AIR-приложения. Записывайтесь на бета-версию Google Analytics Reporting Suite, она начнется сразу по набору достаточного количества желающих. Это приложение Adobe AIR переносит Google Analytics на десктоп:
Использует свой собственный API для работы с Google и реализует почти все возможности Analytics (зря, что не предыдущей версии — у апликухи сразу была бы куча уникальных поклонников, новая нравится далеко не всем). Да и кто использует все фичи Analytics, где эти отважные люди? Для еще не подчинивших себе данный сервис (этих тоже покажите) заведена специальная тестовая учетная запись в Google.
Сервис AIRApps.net существует уже полгода и за это время... неважно.
У ребят — далеко идущие планы по поддержке, распространению и продаже наших AIR-приложений с помощью их скоро выходящей "AIR Commerce Framework"... но об этом тоже в ближайших выпусках.
Сейчас на сайт AIRApps.net можно закачать свое AIR-приложение и автоматически получить учетную запись для Flash Media Server 2.
Adobe на могла этого пропустить: Майк Дауни выложил интервью-подкаст с Эдвардом Мансури, одним из основателей AIRApps.
Лед тронулся, господа Воздушные Разработчики, и да не прольется на вас Холодный Серебряный Свет.
О том, почему у Флекса так много общего с Джавой и почему Java-разработчик с легкостью освоит Flex, как именно адепты Java могут использовать Flex для разработки RIA-приложений, почему Флекс — самое надежное средство для создания таковых, как устроен Flex-фреймворк и чтол такое MXML/ActionScript3, как LiveCycle Data Services ES превращаются в контейнер Servlet/J2EE и предоставляют неслабую серверную инфраструктуру Flex-приложениям, как можно использовать opensource-альтернативы LiveCycle Data Services ES — Granite Data Services и OpenAMF - Java Flash Remoting, и какие все же есть различия между Flex и Java, включая примеры исходного кода — таково, если очень коротко, содержание двух статей:
1. Flex and Java – A perfect technological marriage (перевести на русский язык) 2. From Java to Flex (перевести на русский)
Раздавайте ссылки знакомым Java-программистам. Ди а незнакомым тоже раздавайте, пригодится.
Тут в комментариях Dendroid™ возмущался — мол, почему не сообщаем о выходе AIR Beta 1 для Flash CS3, а пишем про оптимизацию AS3-вычислений?
А потому, что это был секрет. Не хотелось разглашать. Все-таки -- Adobe AIR, технология избранных. Много выгоды можно получить от ее использования (я об этом напишу подробнее в ближайшие дни). Но поскольку Dendroid уже все равно тему спалил — то куда теперь деваться.
Ладно, качайте Adobe AIR Beta 1 для Flash CS3 и читайте доку "Использование Adobe AIR Update для Flash CS3 Professional". Там сказано, что Adobe AIR update для Flash позволяет вам трансформировать флэш-файл Flash в десктоп-приложение. Например, есть у вас набор флеш-файлов, друг с другом взаимодействующих, чтобы XML-данные отображать. Интригующее начало? У меня у самого мурашки по коже... Вы можете использовать обновление AIR для Flash, чтобы упаковать эти файлы в небольшое приложение, которое можно установить на машине пользователя, который запустит ваше приложение прямо с десктопа, — и прямо оттуда на него ваши данные польются благодатным XML-потоком, отобразится ваш веб-сайт, прямо прямо в окне AIR-приложения, независимо от браузера. Вдруг у пользователя браузер не установлен? А так он сможет смотреть ваш сайт без всякого браузера и даже без интернет-подключения (ведь интернет запретят совсем скоро из-за вредности, вы слышали? Откуда у Адоба эти идеи? Я думал, они погибли вместе с Macromedia Central).
Короче говоря, Адобы могли бы и поинтереснее историю придумать. Например, намекнуть, что теперь ваши флэш-игры будут полноценными приложениями, а не одним из безымянных SWF-файлов в чьем-то каталоге "Games/Флэшки"
Ну да ладно. Кому надо тот поймет всю круть данного апдейта, а кому не надо — руки прочь от секретной технологии.
P.S. А если серьезно — столько новостей клевых, уж не знаю, в каком порядке их выкладывать, чтобы ни одна среди остальных не затерялась. Вот соседняя новость про оптимизацию AS3 — на мой взгляд, даже покруче будет.
Начавшись на странице Джона Грдена, обсуждение способов оптимизации ActionScript3 нереально разрослось и плавно перешло на страницу "тесты скорости AS3" сайта OSFlash.org и там разрослось еще раз.
Имеет ли смысл русская версия? Ведь там больше ActionScript, чем английского.
Текстовое содержимое и важные для пользователей значимые данные флекс-приложения по умолчанию спрятаны от поисковых роботов в глубинах бинарного кода swf-файла, поэтому они не появляются в результатах поиска даже по самому релевантному к ним запросу. Это нехорошо. Пользователи должны находить ваше приложение по его контенту — потому что ваш продукт действительно содержит эти данные, но робот Google не отображает их на странице результатов. Если вы хотите, чтобы ваше приложение находилось через Гугл, то сами должны позаботиться об эффективном способе предоставления Гуглу нужной информации.
Как включить ваш флэш-продукт в число достойных обитателей СЕРП'а — страницы с результатами поиска?
Джош Тиньяла из Yahoo! Flash Platform в своей статье “Как сделать ваше горячее RIA дружественным к поисковым движкам” разбирает такой способ поисковой оптимизации флеш-приложений. Он основан на использовании XML-данных в качестве контента страницы и XSL-трансформации. Джош анализирует пример успешной реализации этого подхода Тедом Патриком во флекс-приложении Flex Directory — списке компаний, предоставляющих услуги по Flex-разработке. Это работает. Гугл находит приложение Теда и выдает хорошо оформленный результат поиска по запросу "Flex directory". Приложение Теда идет вторым номером сразу после какой-то дорвей-заглушки.
Идея проста: предоставьте чистые текстовые данные (XML) поисковому роботу, а браузеру пользователя отдайте их же, предварительно трансформировав с помощью XSL. Так пауки Гугла получат свои тексты, а браузеры — свои пользовательские интерфейсы, построенные точно на этих же текстах. Все честно, гибко и search-engine friendly!
XSL-трансформация применяется к исходным XML-данным флекс-приложения как таблица стилей таким образом:
<?xml-stylesheet type="text/xsl" href="http://directory.onflex.org/template002.xsl"?>
Способность браузера манипулировать XML-данными через XSL — ключ к решению проблемы. Заглянув в XSL-файл, вы обнаружите, что в нем хитрый Тед заменяед XML-контент очень простой HTML-страницей, которая внедряет SWF-файл Flex-приложения при помощи знакомого нам SWFObject. Он передает флекс-приложению URL страницы при помощи FlashVars, и приложение загружает свой XML без XSL-трансформаций, точно так же, как и робот-поисковик:
var so = new SWFObject( "http://directory.onflex.org/template002.swf" , "fxtxsl" , "100%" , "100%" , "9" , "#191919"); so.addParam( "scale" , "noscale" ); so.addVariable("xmlurl", document.location ); so.useExpressInstall( "http://directory.onflex.org/expressinstall.swf" ); so.write( 'flexcontent' )
Как увидеть исходный XML-код нам, скромным обладателям браузеров? Так же, как и исходный код любой HTML-страницы — через соответствуюющий пункт меню браузера. Правый клик не даст эффекта — вы будете кликать по флекс-приложению....
Этот же подход вполне применим и для приложений Silverlight / AJAX. Которые как всегда "забудут" поблагодарить флэш-платформу за протоптанную дорожку.
И поскольку эта уже давно витающая в воздухе идея до сих пор не приобрела широкой популярности, первые применившие ее Flash / Flex разработчики получают кокурентное преимущество перед остальными, что начнут применять ее позже.
Есть смысл подумать над (полу) автоматизацией этого процесса за счет создания соответствующих шаблонов для Flex Builder'а.
В комментариях к записи хитрого Теда небезызвестный Даг Маккун сказал, что поскольку XML и XHTML — близнецы-братья, а исходный XML-контент приложения и так уже ближе скорее ко второму из них, то для пущей поисковой оптимизации есть смысл описывать контент при помощи стандартных тэгов — заголовков нескольких уровней, абзацев, выделений и т.д. Ведь Гугл так любит хорошо структурированные документы, а флэш-аппликации при разборе XML все равно, как называется тэг, лишь бы структура была соблюдена. На это Тэд ответил: отличная идея.
Запускай робота!
Сегодня, 21 августа 2007 года, вышла новая версия флэш-проигрывателя Flash Player 9 Update 3 (Beta 2), поддерживающего аппаратно ускоренное видео формата H.264 и аудио HE-AAC -- то есть стандартов компрессии MPEG-4. Это означает поддержку во Flash Player следующих аудио- и видео-кодеков: H.264/HE-AAC, включая MP4, M4V, M4A, MOV, Mp4v, 3gp, 3g2 и это еще не все.
(Quicktime уже сейчас можно смотреть во Flash Player 9)
Обеспечение новой функциональности производится за счет поддержки видео-стандарта H.264, уже применяемого в таких технологиях, как Blu-Ray® и проигрывателях высокого разрешения HD-DVD®, и аудио-стандарта "High Efficiency AAC" (HE-AAC), уже применяемого там же.
Это означает, что флэш-проигрыватель поддерживает формат телевидения с высоким разрешением.
Скачать новую версию Flash Player можно в Adobe Labs.
Сейчас стандарт H.264 уже поддерживается Adobe Flash Player, и будет также поддерживаться в Adobe Integrated Runtime (AIR) и приложениях, созданных ПО Adobe AIR™, включая Adobe Media Player™.
Финальный релиз ожидается осенью. Демонстрации Adobe Flash® Media Server и Adobe Flash Media Encoder, поддерживающих новые кодеки, будут проходить на выставках IBC 2007 и RAI Exhibition and Congress Center в Амстердаме, 7-11 сентября и будут повторены на конференции Adobe MAX в Чикаго, которая начнется 30 сентября.
Читайте также:
- Арал Балкан: FAQ по Adobe Flash Player H.264 support. - Официальный пресс-релиз Adobe: "HDTV Quality Web Video Reaches the Masses with Industry Standard Video Codec in Flash Player".
Окончательный удар по мозгам. А я так хотел поспать.
Такой перевод пришел мне на ум, когда я читал стенограмму Дэвида Колетты. А он писал что-то вроде этого:
"Переделывайте Flex 2 Framework под свои нужды. Программисты Adobe -- не боги. 90% работы создающего наворочнные компоненты Дага -- это оверрайдинг стандартного Flex 2 фреймворка. Но не делайте все с нуля. Не изобретайте велосипед, лучше натянице спицы на уже имеющемся. Воспользуйтесь преимуществом 234 000 строк кода фреймворка."
На английском звучит красивее: "Don’t reinvent the wheel, just make it rounder"
Помните Дага Маккуна? Того самого, что PV3D + APE = TileUI - хорошая физика плюс лаконичное тридэ?
На только-только прошедшей конференции 360Flex Даг рассказал, показал и выложил исходники о том, как создавать собственные компоненты и при этом серьезно переделывать фреймворк Flex 2 под свои нужды.
Очевидцы говорят, что доклад Дага был одним из лучших.
А Дэвид Колетта речь Дага записал: Custom Component Development with Doug McCune -- писал быстро, с ошибками, вперемешку с соабственными мыслями... и получилось хорошо. Не зря проект Колетты (онлайновый текстовый редактор made with Flex) получил от Адоба инвестиций не на один миллион долларов -- тоже совсем недавно.
И есть там такая фраза: "Adobe engineers are good, but they are not God. They are all just programmers like you and me. You can write better code than them. There is nothing magical in the framework."
Апдейт: голосование завершено.
Нарисовал пару футболок для конкурса Google Loves Threadless -- оцените кликнув по картинкам, если на то ваша воля:
Жену тоже попросил поучаствовать:
Победитель получает две тыщи, айФон и еще кучу всякой приятной ерунды от Google.
Цель создания Flash Platform Team в Яху! — разработка технической стратегии и политики для технологий Adobe применительно к Yahoo! Основной упор делается на создание библиотек кода, решений, методик и практик для флэш-платформы, так как Яху! внимательно следит за развитием технологий Adobe -- такова официальная информация.
Будут созданы компоненты, расширяющие набор уже существующих для Flash CS3, например, Tree, AutoComplete (давно просится), облегченные диаграммы -- это в дополнение к уже имеющимся Yahoo! Web APIs (например, флэш-пакет для работы с Yahoo! Maps, который несоменно нужно апдейтить и нужно убедить Яху открыть прямой доступ к загружаемым картам через BitmapData -- пусть Гугл оближется).
Библиотеки будут выпускаться в Yahoo! Developer Network как open source по лицензии BSD и будут бесплатными для всех вариантов их использования.
Естественно, проявляется большой интерес к Adobe AIR.
В создаваемую команду Yahoo! Flash Platform Team вошли личности, уже в некоторой степени легендарные -- например, Josh Tunjala, который нет-нет да и ронял слово о том, что флэш-девелоперам в Яхе уделяли не так много внимания, как ему нужно.
Еще не знаю, станет ли этот момент поворотной точкой в истории человечества, но флэш / флекс сообществу будет от этого несомненная польза, а Гуглу может быть урок.
Включив следующие поисковые плагины для Firefox (два клика), вы получите не только самый быстрый, но и самый умный поиск по ActionSctipt 3, Flex 2, Flex 3, Adobe Labs и документаци к Flash / Flex:
Продуктивного вам поиска.
Хорошие новости — до 26 июля 2007 года Flex-Ajax Bridge был доступен только как часть Adobe Live Cycle Services (~>150MB), как видно на этой вики-странице от 13 июля 2007 г., а теперь FABRidge можно скачать как часть Flex 3 SDK Beta Daily Builds. Это лучше, потому что SDK весит в четыре раза меньше (~40MB).
Как вы знаете, класс MovieClipLoader был создан для продвинутой загрузки всего на свете в мувиклипы. Он пришел на смену методу MovieClip.loadMovie, потому что тот не умел контролировать прогреcc — вот и появился новый класс и его метод loadClip.
MovieClipLoader
MovieClip.loadMovie
loadClip
Но вместе с ним возникли и новые проблемы: метод MovieClipLoader.loadClip не умел автоматически приводить тип данных своего первого аргумента — адреса загружаемого объекта.
MovieClipLoader.loadClip
Короче говоря, если путь загружаемой картинки был задан строкой, но она каким-то образом была приведена, например, к типу Object, то метод не срабатывал и возвращал false без объяснения причин. В то же время старый добрый метод MovieClip.loadMovie проглатывал такие (не)приведенные строки без всяких проблем.
Object
false
Например, в этом коде работала вторая строка, а третья — нет:
var imgPath:String = Object("http://www.helpexamples.com/flash/images/image1.jpg"); mcImage.loadMovie(imgPath); mcLoader.loadClip(imgPath, mcImage);
Чтобы третья начала отрабатывать, нужно было привести тип аргумента к String:
String
mcLoader.loadClip(String(imgPath), mcImage);
В сигнатуре обоих методов требуемый тип данных был указан одинаково как String — но для MovieClipLoader.loadClip это требование было жесткое, а для его старшего брата — нет.
Внимательный читатель спросит: а какого вы вообще строки в объекты конвертировали и потом еще жаловались?
Иногда это бывало так: использовались адреса картинок, вытащенные их XML-файла с помощью удобного выражения XPath. В результате этой операции адреса, фактически являвшиеся строками, становились объектами и хорошо работали до тех пор, пока использовалься метода loadMovie.
loadMovie
Но как только было решено запрелоадить все на свете с помощью MovieClipLoader.loadClip — -- вдруг загрузка переставала работать, пока кто-то не догадался привести тип первого аргумента метода к типу String.
Пройдут годы, вы покажете эту статью внукам со словами: вот видите, как тревожно нам до AS3 жилось. Методы молча лажались и даже не пикали. То ли дело теперь — с такими-то профайлерами да дебаггерами!
Важный момент при обновлении приложения Adobe Apollo Alpha до Adobe AIR Beta 1: переименован контейнер приложения в структуре MXML-файла. Теперь нужно использовать <mx:WindowedApplication> вместо <mx:ApolloApplication> — ведь Аполло превратился в AIR. Также изменена структура файла application.xml.
<mx:WindowedApplication>
<mx:ApolloApplication>
В теме Apollo to AIR migration форума codeapollo.com суть миграции изложена коротко и ясно. Описанных там изменений мне хватило, чтобы обновить приложение Google 3D Map 0.3 (для установки необходим Adobe AIR Runtime Beta 1).
Скриншот (по клику скачивается дистрибутив):
Новое:
- Карта протаскивается плавнее. Теперь просто плавно, без рывков пред. версии. - Работает колесо мыши: вращать для наезда камерой, вращать с клавишей Shift для установки высоты камеры над горизонтом. - Теперь использует родной хром (элементы окна) Adobe AIR.
Исходники Google 3D Map 0.3 для Adobe AIR (рекомендуется Flex Builder 3).
Кстати, очень рекомендую Flex Builder 3.
In English: Google 3D Map Application made with Adobe AIR and Papervision3D.
Питер Холл -- помните такого? -- выпустил XPath для AS.
На закономерный вопрос -- "зачем, ведь у нас уже есть e4x?" Питер ответил мне так:
e4x действительно неплох для многих задач. Но XPath необходим для реализации некоторых других веб-технологий. XSL и REX -- два примера таковых. С помощью XPath ты можешь задавать свои собственные пути как данные, и загружать их из внешних источников, или создавать их динамически. А в e4x ты связан жестко вписанными в код выражениями. XPath также включает большую библиотеку полезных функций, которые с помощью e4x реализуются далеким от элегантного способом. Спецификация e4x учитывает это, и указывает, что реализации могут дополнительно включать XPath. Но поскольку это необязательно и Flash Player имеет известные ограничения по размеру файла, то Adobe не стала добавлять XPath.
С помощью XPath ты можешь задавать свои собственные пути как данные, и загружать их из внешних источников, или создавать их динамически. А в e4x ты связан жестко вписанными в код выражениями.
XPath также включает большую библиотеку полезных функций, которые с помощью e4x реализуются далеким от элегантного способом.
Спецификация e4x учитывает это, и указывает, что реализации могут дополнительно включать XPath. Но поскольку это необязательно и Flash Player имеет известные ограничения по размеру файла, то Adobe не стала добавлять XPath.
(Цитирую из обсуждения "как по-настоящему спрятать Flex-компонент") в блоге Питера Холла.
Google PageRank™ любого сайта, доступному по двум доменам -- основному и www (как flash-ripper.com и www.flash-ripper.com) -- делится на две части: одна достается основному домену, а другая -- дополнительному www. Это происходит потому, что в интернете есть ссылки как на основной домен сайта, так и на дополнительный. В результате сайт недополучает совершенно законную часть принадлежащего ему PR. Это касается практически любого современного сайта.
Исправить эту ситуацию совершенно легальным и более того - рекомендуемым самим Google способом можно, воспользовавшись так называемой "постоянной переадресацией", или переадресацией 301.
Для этого нужно, чтобы ваш Apache поддерживал Mod-Rewrite (на моем domen.com.ua" включен) и чтобы в файле .htaccess, лежащем в корне вашего сервера, были такие строки:
Options +FollowSymlinks RewriteEngine on rewritecond %{http_host} ^www.mysite.com [nc] rewriterule ^(.*)$ http://mysite.com/$1 [r=301,nc]
В результате ваш сервер будет по запросу www.mysite.com отдавать всегда просто mysite.com и последний заберет всебе всех посетителитей, все ссылки и весь Google PageRank™.
Можно поступить наоборот - перенаправлять с домена mysite.com на www.mysite.com:
Options +FollowSymlinks RewriteEngine on rewritecond %{http_host} ^mysite.com [nc] rewriterule ^(.*)$ http://www.mysite.com/$1 [r=301,nc]
Как реализовать Redirect 301 для IIS, PHP, Coldfusion, ASP, ASP .NET, JSP (Java), CGI Perl и Ruby on Rails: How to Redirect a Web Page (301 Redirect)"
Редирект 301 как бы говорит: "moved permanently", такой здесь больше не живет, но я знаю его новый постоянный адрес, вот он.
Проверить сайт на редирект 301 можно здесь.
Есть еще один вариант - указать Гуглу основной (канонический) домен свего сайта.
Используя приведенный Алексеем Тутубалиным рецепт можно изготовить в Flash Player 9 онлайн-инструмент для создания таких популярных нынче HDR-изображений, не так ли?
Дима Давыдов, обчитавшись которого можно получить заряд бодрости на год вперед, проводит третий китайский эксперимент.
У Темы Лебедева же аналогичный эксперимент проводится перманентно, о чем улыбается хитро подмигивающий смайл в правом верхнем углу сайта.
Ты уже натворил столько, делал это так хорошо, красиво и круто, что даже перечислить сложно -- среднему флэшеру на несколько жизней хватило бы.
Респект.
Твори еще и никогда не останавливайся.
"Программимрование сегодня -- это состязание между разработчиками ПО, пытающимися создавать бОльшие и лучше защищенные от идиотов программы, и Вселенной, пытающейся производить бОльших и лучших идиотов. Пока Вселенная побеждает." - Rich Coo
В Flash при
По адресу wiki.flash-ripper.com открыта и настроена русскоязычная флекс-вики. В эту базу знаний вошли все материалы, созданные и переведенные флекс-сообществом рунета для предыдущей версии вики.
Сохранены все логины, пароли и прочие данные, введенные участниками Flex2pedia: сохранилось и ваше авторство относительно статей вики: прямо сейчас можно зайти под старым именем и убедиться.
Каждый желающий может поделиться своими знаниями во флекс-технологии или просто перевести свободную статью из документации.
Ссылки:
Завершая редактирование статьи, не забывайте ставить в конце авторскую метку формата "--~~~~", чтобы оставить свою подпись.
Все сомневающиеся и обсуждающие политику вокруг вики идут лесом.
Первые 12 дней разработки сайта TileUI.com.
Papervision 3D + ActionScript Physics Engine:
Помнится, недавно такое показывали как пример крутого интерфейса ОС.
Блог автора
Антон Волков, на чьих исходниках выросла лучшая часть рунетовских флэш-разработчиков, поделился ссылкой на блог своего нового проекта - "игры Альтернатива".
В последнее время Антон неоднократно упоминал о разрабатываемом им новом трехмерном движке для флэша. Теперь становится понятно, о чем шла речь: движок уже можно основательно пощупать.
Такого в рунете еще не было.
Flash CS3 на дворе, но вечный вопрос задается все чаще: как сделать, чтобы предзагрузчик моего флэш-сайта стартовал не с 75 процентов, а с 1? В том числе и во Flash CS3?
Причина такого поведения очень проста: ваш предзагрузчик появляется, когда целиком загружен первый кадр клипа (предполагаем, что прелоадер находится внутри загружамого им приложения). Если первый кадр "тяжелый" и весит 75% от общего размера -- то и прелоадер честно появляется только после того, как эти 75% будут загружены.
Чтобы решить проблему, нужно уменьшить эти 75% до 1%. Сначала разберемся, из чего они состоят. А это:
Следовательно, нужно:
1. В свойствах КАЖДОГО элемента библиотеки снять флаг "Export in first frame" и ВРУЧНУЮ экспортировать его в нужный кадр приложения, идущий ПОСЛЕ прелоадера, но ДО первого использования данного элемента. Для этого я организовываю свои флэш-приложения таким образом: создаю спец. слой "export assets", в котором и размещаю вручную все экспортируемые элементы ВНЕ СЦЕНЫ; обратите внимание, что в 10 кадр этого слоя элементы экспортируются, а в 11 кадре их уже нет:
Основное приложение стартует с 20 кадра (метка "app init"); в своих проектах вы можете использовать другие интервалы: например, экспортировать в 3 кадр и запускать приложение в четвертом; я же опытным путем пришел к тому, что чувствую себя комфортно при таком несколько избыточном разносе элементов (ага, а в GW Basic строки нумеровались через 10. Славное было время -- компьютерный кружок, ПЭВМ "Поиск"...)
2. В настройках публикации указать, что классы должны экспортироваться не в первый кадр, как это происходит по умолчанию, а в выбранный вами. В данном примере -- это тот же 10 кадр. Итак, идем в меню Publish Settings > Flash > Actionscipt 2.0 Settings > и в поле "Export frame for classes" (номер кадра в который будет экспортироваться шрифт) вводим 10 (в данном случае). Внимание: для Flash 9 / CS3 / AS3 - мегаважное замечание от __etc!)
Этих действий должно быть достаточно, чтобы ваш прелоадер, размещенный ДО кадра экспорта, стартовал с нуля процентов.
3. Если, конечно, сам прелоадер не весит полмегабайта. Впрочем, даже для этих ситуаций есть выход: делаем прелоадер прелоадера, а затем - сам прелодер. Думаете, шучу? На практике приходится решать даже такие задачи, и ради одной цели: с точки зрения посетителя прелоадера быть не должно вообще.
У рецепта есть тонкости.
Как правило, все мувиклипы нужно вручную экспортировать в кадр, предшествующий кадру экспорта классов: в результате флэш-приложение загружает сначала графику, а затем -- классы, этой графикой управляющие. Но если вы используете компоненты и их скины, вам может понадобиться экспортировать их именно в том же кадре, что и классы -- очевидно, это следствие тесной взаимосвязи классов, скинов и компонентов.
В результате может получиться такая модель: в 9-й кадр экспортируются все не-компоненты, а в 10-й -- компоненты, скины и классы.
Выглядит запутанно, но если вы будете держать в голове главную мысль -- "каждый объект должен быть экспортирован до свего первого использования" -- то вам станет значительно легче наводить порядок в проекте и при этом стартовать прелоадер с нуля процентов.
Убрав для звука в библиотеке галочку "Export in first frame", и разместив звук в выбранном кадре экспорта (для чего вам может понадобиться еще один слой, назовем его, например "export sound assets"), зайдите в Properties этого кадра и выберите данный звук. А затем в поле Sync выберите значение Stop, чтобы он вдруг спонтанно на зазвучал - пишет -V-. Теперь он контролируется, как любой другой залинкованный звук.
Шрифт экспортируется в тот кадр приложения, в котором впервые встречается текстовое поле, использующее этот шрифт - как верно замечает __etc.
Поэтому все мувиклипы, содержащие такие текстовые поля, должны экспортироваться не в первый кадр, а в выбранный вами кадр экспорта -- как было описано выше.
В ситуации же, когда вы хотите в прелоадере использовать тот самый шрифт, что и в основном приложении, можно воспользоваться советом от meanjerk:
"Касательно текстов - если в первом кадре нужно использовать текст, причем критично, чтобы он был таким же, что и в последующих кадрах, но с меньшим кол-вом символов, скажем это 11 Arial bold, то в первом кадре делаем этот текст не Arial, а скажем, Arial Cyr или Arial Greek. Если аналога шрифта не нашлось, придется попариться с дублированием шрифта в библиотеку (для использования в _последующих_ кадрах, а не в первом), что может увеличить общий вес ролика, но проблему все же решит."
Этим вопрос со шрифтами не исчерпан.
Все еще неясно? Почитайте здесь:
Важно! Пользователи Flash CS3, читайте заметку от Дениса Коляко: Экспорт классов во второй кадр и создание прелоадера во Flash CS3.
Как переводится ваше имя на японский? Вводите буквы (Lat/Cyr):
Сделано по наводке Injun'a :-)
Глубоко ваш Шимоаричи.
Subscribe to RSS headline updates from: Powered by FeedBurner
Денис Коляко в ruFlash представил две полезные ссылки, не пропустите:
1) Alexis' SWF Reference (SWF версий 1-9)
2) ActionScript Virtual Machine 2 (AVM2) Overview
После этих материалов саму официальную спецификацию SWF / FLV 9 можно считать скорее дополнением к ним...
Совсем древнее: 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