2 дня назадМы были на прошлой неделе в Белоруссии проездом, было очень холодно: ночью в Гомеле -32 %) Спасибо за приглашение, у меня есть сильное желание приехать и послушать доклады, интересные темы, но всё же в следующий раз, когда будет потеплее ;)
5 дней назадНаконец нашел что-то путное по теме. Начну разжевывать. Несколько дней уйдет, однако.
1 неделя назадМне пришлось столкнуться с тем, что элементарно не работает комбинация клавиш Ctrl + C и Ctrl + V. Причем переустанавливали Flash и не раз. Может быть, есть здесь те, кто сталкивался с этой проблемой и как-то смог решить ее?
1 неделя назадХотелось бы узнать, Как вы относитесь к пиву? Если положительно, то какое предпочитаете? Если отрицательно, то почему? Просто интересно...
1 неделя назадпрям таки тебе и скажут здесь посмотри
Первая статья Want to Make Games part 1: Start Up Kit получила ожидаемый отклик и три человека уже не только хотят, делать игры, а пробуют делать игры. Я отвечал на возникшие у них вопросы и накопилась следующая порция информации. Есть много сложных уроков, они пугают новичков, поэтому в данной статье показан минимальный код, необходимый для начала.
Want to Make Games part 2: Assets, Text, Button, Event, Timer Source Code and FlashDevelop Project File - архив с файлами, по одному на каждый шаг добавления функциональности:
1. Main1.as - Пожалуй простейший код ActionScript добавляет векторное SVG изображение на сцену, только Hello World! чуть проще
.
2. Main2.as - Добавляем героя на сцену также вектор SVG.
SVG могут быть сделаны и отредактированы с помощью Inkscape.
3. Main3.as - Размещаем врага, он не векторный, а растровый — это Bitmap в формате PNG. Также добавляем звук в формате mp3.
PNG может быть создано и отредактировано с помощью GIMP, mp3 могут быть синтезированы и отредактировано в Wavosaur.
4. Main4.as - Создание текста TextFiled.
5. Main5.as - Нарисовать и добавить простую кнопку.
6. Main6.as - Взаимодействие с мышкой.
7. Main7.as - Определение основного цикла игры с таймером и простой анимации на его основе.
8. Main.as - Вся функциональность представленная выше перенесена в свой отдельный класс Game. Game.as - финальный результат кода подчищенный и с комментариям.
Получить подсветку as3 кода здесь мне не удалось, можно посмотреть в оригинальной статье.
Source article in English: Want to Make Games part 2: Assets, Text, Button, Event, Timer
Моему другу с этим руководством была поставлена задача создания простейшей hidden object игры, которую я считаю одной из самых простых по геймплею, результатами поделюсь. 3-я часть будет о наследовании классов и больше о событиях и их источниках.
Play more, make Your games! 
ПС. Хватит спорить, какая технология перспективнее, дело не в технологии, а в самих играх или приложениях. Чуть позже перенесем одну и ту же простую игру на AIR, C и HTML5+JS (если хватит силы воли, победить предвзятость перед миллионом вариантов рантайма).
Ребята из FancyCMS на днях зарелизили бета версию своей flash CMS. Софтина пока сыровата, но они её оперативно фиксят. А самое главное - опенсорс движок можно скачать на шару и использовать в своё удовольствие! Это можно сделать вот тут - Free Flash CMS. Качаем, юзаем, задаём им вопросы на форуме 
21 июля Adobe выпустила в Open Source разработку Open Source Media Framework (OSMF. Ранее проект носил рабочее название Strobe). Что этот фреймворк собой представляет и чем он может пригодиться нам, профессиональным бездельникам, в смысле, разработчикам?
Open Source Media Framework — открытая, многоуровневая, слабо связанная, гибкая и целостная система для разработки мультимедийных проектов любой сложности, использующих преимущества современной информационной насыщенности и связанности сети, или не использующих. Архитектура AS3-фреймворка OSMF создана специально для работы с медиа-данными любых типов и объемов.
От несложной фотогалереи до многопользовательского видео-портала с подключенной социальной сетью, наноблогами, блекджеком и эффективными менеджерами — вот спектр применения OSMF.
Пример: разработчик и/или дизайнер создает медиа-плейер во Flex, Flash или Catalyst. Потоковое вопроизведение обеспечивается установленными у поставщиков контента серверами типа Red5 или FMS, а фреймворк дает средства интеграции с разными системами, есть плагины и можно делать свои. Платформа Flash обеспечивает проигрывание видео и других типов контента. Компании типа DoubleClick предоставляют элементы рекламы для показа в заданной позиции видео, плейлиста, или реализующие распределенную рекламную кампанию внтутри медиа-системы, рекламу, которая подстраивается под метаданные. Приложения от компаний типа KickApps помогают встроить плейер в социальные сети типа Facebook. Компании типа Level(3) занимаются синдикацией потоков данных для выдачи их внешним API. И ко всему этому можно подключить еще много разных сервисов и датапровайдеров, да хоть кофеварку на USB.
И получается, что если ты еще вчера работал на дядьку, которому делал видео-портал (мы знаем, как это "легко"), а он тебе как-то нехотя платил, не забывая покупать себе новые машины, то сегодня ты с парой своих друзей можешь оставить его на произвол судьбы и сделать все сам. Фреймворк такой.
Заканчивая это славное маркетинговое вступление, отметим: некоторые объясняют действия Adobe по открытию исходников OSMF как попытку выиграть в борьбе за стандарты сетевого видео. Не станем спорить, ведь любая здоровая компания стремится быть первой, и при должном усилии и хорошей карме (да-да) становится ею. И тут же мы станем утверждать, что OSMF родился естественным образом, как ответ Flash на современное состояние той экосферы, ключевой частью которой Flash является. Сегодня во Flash — огромное количество медиа-информации и систем управления ею, разработчиков и дизайнеров, библиотек и фреймворков, рекламных сервисов и решений для монетизации, медиа-площадок и поставщиков контента, социальных сетей, систем аггрегирования и рейтинга — всего того, что неоднозначно называется Web 2.0, и в формировании чего Flash Player сыграл и играет важную роль.
Так много всего, как с этим можно работать? Как студии, компании, поставщики контента и разработчики могут применить богатство технологий Веб 2.0 на практике? Используя Open Source Media Framework, а конкретно — интегрируя OSMF в свой проект на необходимом им уровне. Основных уровней интеграции три, и они строятся вокруг трех аспектов архитектуры OSMF.
OSMF реализует три функциональных аспекта как части триединства MVC:
IMediaElement). IMediaTrait: "качество", "черта", "особенность медиа").
Что такое медиа-признак элемента? Это указание на его конкретные характеристики. Примеры признаков: IPlayable (ЯИграбельный), IViewable (ЯВизуальный), IPausible (ЯПаузабельный) и т.д:
Признаки элемента играют важную роль при работе с ним вашей медиа-системы. Например, у загруженного в ваше приложение видео-элемента обнаружен признак IPlayable. Значит можно показать пользователю кнопки "Play" и другие, реализующие этот признак, ЯИграбельный. Когда видео проиграно до конца, загружается следующий элемент, картинка, у которой нет признака IPlayable, а есть признак IViewable. Значит, теперь можно скрыть или деактивировать кнопки для проигрывания контента, и просто показать картинку. Так мы получаем гибкую подстройку системы под тип медиа-контента.
IMediaFactory.Описанные выше три аспекта в реальной разработке превращаются в богатый выбор уровней взаимодействия с OSMF, которые можно описать тремя простыми тактическими схемами. Простыми до того, что укравший их медиа-шпион все равно ничего в них не поймет, потому что они — только для своих, опенсорсных ребят. Медитируя на эти схемы, можно постичь суть всех фреймворков мира (краткое пояснение будет ниже):
Вот и завершено изучение интересных и познавательных схем. Припоминаем теперь, что ранее мы рассмотрели три аспекта OSMF: медиа-элемент, медиа-композиция и медиа-конфигурация. Архитектура OSMF устроена так, что можно работать с любым аспектом, исходя из сложности проекта.
Это один из самых гибких моментов фреймворка OSMF. Вы можете перебирать атомы медиа-элементов, а можете ворочать вселенными медиа-конфигураций. Все зависит от задачи: вы берете из фреймворка нужные элементы и используете. За счет этого оптимизируется также размер SWF. И при этом вы сможете в будущем расшириться на использование других аспектов, когда это понадобится.
Уровень 1. Фреймворк Медиа. Строится вокруг медиа-элементов, как правило, однотипных. По большому счету, обычный видео-плейер. Включает в себя, например, открытый видео-проигрыватель OVP, работает с парой поставщиков контента. Есть возможность использовать виджеты рейтинга и рекомендации друзьям. Визуальный интерфейс подстраиваете под себя. Указываете, какие кнопки хотите показать, задаете настройки и т. п. Есть возможность подключения ко второму уровню.
Уровень 2. Фреймворки Медиа + Компоновка. Это уже скорее мультимедиа-проигрыватель, в отличие от проигрывателя однотипных данных, что был на уровне 1. Здесь есть все, что было и на первом уровне, плюс интеграция с метаданными, метками (cue points) и языком разметки презентаций SMIL, что выливается в возможность встраивания в приложение плагинов для монетизации, то есть подключения к статистике, рекламе, рекламщикам, и прочим полезным проходимцам.
Уровень 3. Фреймворки Медиа + Компоновка + Конфигурация. Полномасштабная машина для автоматической сборки и переработки разнообразного контента в лулзы и / или денежную массу. Приложение размечено на медиа-регионы: тут у нас логотип спонсора данного клипа, тут баннер его друзей, а тут виджеты пока неизвестных третьих лиц, но тоже обещали заплатить. В дополнение к уровням 1 и 2 добавляется синдикация контента и динамический интерфейс. Здесь же — ваши плагины и плагины сети партнеров.
Да, и все это уже кое-как работает. Примеры в Adobe, как вы понимаете, делались не для демонстрации эффекта мокрого пола, а для показа неброских, но важных программных решений:
Source: FlashMediaPlayerTest.zip
Ниже приведены важные относительно OSMF части кода из второго примера (Flash), остальное можно скачать и посмотреть (но осталось там немного). Итак, сначала мы создаем два медиа-спрайта типов MediaElementSprite и MediaPlayerSprite соответственно. Первый, MediaElementSprite, рассчитан на отображение медиа-элементов с признаками IViewable и ISpatial, т.е. ЯСмотрибельный и ЯСоСвоимиРазмерами. Годится для использования как во Flash, так и во Flex. Второй, MediaPlayerSprite, умеет автоматически создавать для себя MediaPlayer и проигрывать его содержимое:
package {
public function FlashMediaPlayerTest()
{
elementPlayer = new MediaElementSprite();
mediaPlayer = new MediaPlayerSprite();
Когда мы жмем на кнопку "1. Создать Media Element", вызывается метод onMediaElementTest. Он создает элемент простого типа — ImageElement (картинка типа JPG, PNG, GIF) и присваивает его свойству elementPlayer.element. А elementPlayer не загружает его автоматически, а ждет события, например, нажатия на "2. Загрузи Media Element" чтобы обработать признаки элемента и решить, что с ним делать.
А когда жмем на "3. Создай Media Player", то вызывается onMediaPlayerTest. Он создает элемент типа VideoElement и присваивает его свойству mediaPlayer.element. VideoElement по умолчанию обладает признаками IAudible, IBufferable, IPlayable, ISeekable, ISpatial, и IViewable. Так что наш mediaPlayer автоматически загружает и проигрывает его.
Функция testWrapper переключает отображение на экране наших двух плейеров: elementPlayer и mediaPlayer. А также задает размеры медиа-элемента и указывает его ориентацию, в данном случае это ScaleMode.LETTERBOX, что тоже есть константа из OSMF.
private function onMediaElementTest(event:Event):void
{
testWrapper(elementPlayer);
elementPlayer.element = createImageElement();
}
private function onMediaPlayerTest(event:Event):void
{
testWrapper(mediaPlayer);
mediaPlayer.element = createMediaElement();
}
private function createImageElement():MediaElement
{
return new ImageElement(new ImageLoader(), new URLResource("http://webzoom.freewebs.com/sunnycooker/Fun-Panel%20LAS%20Image.JPG"));;
}
private function createMediaElement():MediaElement
{
return new VideoElement(new NetLoader(), new URLResource("http://flash-ripper.com/tests/osmf-composition-player/video/Bad_Vlad_-_Encyclopedia_Dramatica.flv"));;
}
private function testWrapper(wrapper:ScalableSprite):void
{
if(currentSprite)
{
removeChild(currentSprite);
}
wrapper.scaleMode = ScaleMode.LETTERBOX;
addChildAt(wrapper, 0);
currentSprite = wrapper;
currentSprite.y = 60;
currentSprite.setAvailableSize(stage.stageWidth, 340);
}
При нажатии на кнопку "2. Загрузи Media Element" происходит работа с признаками элемента MediaElementSprite. Мы определяем, имеет ли данный элемент признак ЯЗагружабельный и если да, то готов ли он к загрузке, и если он готов, то загружаем его:
//MediaPlayer загрузится сам, а вот MediaElement - нет.
private function load(event:MouseEvent):void
{
if (currentSprite is MediaElementSprite)
{
if (elementPlayer.element.hasTrait(MediaTraitType.LOADABLE) && (elementPlayer.element.getTrait(MediaTraitType.LOADABLE) as ILoadable).loadState == LoadState.CONSTRUCTED)
{
(elementPlayer.element.getTrait(MediaTraitType.LOADABLE) as ILoadable).load();
}
}
}
private var currentSprite:ScalableSprite;
private var mediaPlayer:MediaPlayerSprite;
private var elementPlayer:MediaElementSprite;
}
}
Как видите, ничего военного в OSMF нет, это всего лишь гениальный по своей архитектуре конструктор. Если этот пример кажется вам простым, то гляньте в исходник флексового CompositionPlayer.zip. В этой вводной статье мы для лаконичности ограничимся малым кодом, а в следующих статьях по OSMF рассмотрим более сложные примеры.
Никуда. Все это я даю вам сегодня бесплатно:

Целую,
Рострошитель

Презентация про разработку флеш игры с помощью бесплатного программного обеспечения для конференции flashgamm #2: на нашем сайте укр./aнгл. или на сайте флешгамма рус./англ.
И сама флеш игра «Джампин Джей Олдскул», которая была разработана как теологическое демо к презентации JumpinJ Oldschool.
