понедельник, 31 января 2011 г.

/* Закомментированные хитрости */

/* Закомментированные хитрости */: "

Пишет Dan:
Счастливые родители:

// - однострочный комментарий, компилятор игнорирует все остальные символы до конца строки
/* - начало многострочного комментария, компилятор игнорирует все символы пока не встретится
*/ - конец многострочного комментария

Разномастные дети:

//* - однострочный комментарий, который можно превратить в начало многострочного удалением одного слеша
/**/ - безопасный конец многострочного комментария: даже если не было начала, то не будет ошибки компиляции
/*/ - или начало, или конец многострочного комментария, по обстоятельствам

читать далее [...]

вторник, 25 января 2011 г.

Политика безопасности во Flash Player. Наиболее частные столкновения.

Политика безопасности во Flash Player. Наиболее частные столкновения.:

Часто вы сталкивались с ситуацией, когда ваш код не работает по непонятным причинам? Вам кажется, что всё уже проверено сотни раз и вы с уверенностью говорите себе, что здесь нет ошибок, и уже готовы биться головой о клавиатуру :) Спешу вас утешить, скорее всего ошибка не в коде.

В чем же дело?

А дело может быть в том, что вы нарушаете политику безопасности Flash Player, сами того не зная. Иногда Flash Player просто промолчит об этом :)

Как это предупредить?


Если что-то не работает, а по логике должно - идите в справку. Там кроются все ответы на ваши вопросы. Вообще справка должна быть неотъемлемым инструментом разработчика.

В этом посте я хочу рассказать о наиболее частых нарушениях политики безопасности, с которыми мы сталкиваемся.

Загрузка контента с доменов отличных, о того с которого запущена страница с .swf-файлом

*.load();

Практически на весь загружаемый контент с других доменом и даже поддоменов накладываются ограничения на загрузку, отображение или исполнения сценариев (если вы загружаете исполняемый .swf-файл). Например, .swf-файл не выполнит свой сценарий, если вы загрузили его без разрешения.

BitmapData.draw();[...]

суббота, 22 января 2011 г.

UAFPUG №25 в Николаеве, 12 февраля: поговорим о флэш-сайтах

UAFPUG №25 в Николаеве, 12 февраля: поговорим о флэш-сайтах:

Друзья, поздравляем вас с Удачным Завершением Наступления Нового Почти 2012 Года!

Знаете ли вы, что, пока он наступал, мы не только пытались устанавливать Flash на Android, но также начали заполнять местами и датами календарь мероприятий UAFPUG на ближайший год?

Сообщаем вам, что ближайшая встреча UAFPUG №25 состоится 12 февраля 2011 года в городе Николаеве. И эта встреча будет посвящена созданию флэш-сайтов.

  • Место встречи: уточняется.
  • День: 12 февраля 2011 года.
  • Время: с 11-00 до упаду.
  • Тема: Исскуство создания флэш-сайтов.

Вы спросите: почему именно флэш-сайты, почему именно в Николаеве?

Возможно, у вас возник такой вопрос. Но даже если нет, мы ответим на него. 2011 год будет годом появления множества необычных и интересных флэш-сайтов, и нам нужно как следует подготовиться к этому. Выбор места не случайно пал на Николаев, известный своими славными традициями креативного сайтостроения -- вы помните знаменитый SecondMethod Виталия Онищенко? Вы знаете, что сегодня в Николаеве производят систему MotoCMS для создания Flash-сайтов и управления ими?Можно много еще сказать о том, почему Николаев является столицей флэшового сайтостроения в Украине. Но мы не станем говорить об этом здесь. Лучше поговорим об этом на встрече!

Мы приглашаем всех, кто в теме - прийти и сказать свое слово. Можно послушать слова других. Можно показать свой сайт. Увидеть чужой сайт. Обсудить чужой сайт. Показать чужой сайт. Обсудить свой сайт [...]

пятница, 21 января 2011 г.

FontLoader 2.3

FontLoader 2.3:

Вышла новая версия FontLoader — 2.3!
Наконец-то внедрена поддержка CFF-шрифтов (в теге DefineFont4) для работы FlashTextEngine. Эту поддержку можно было добавить единственной строчкой с ID тега DefineFont4 (91), но мне этого показалось слишком мало, чтобы поднимать версию FontLoader-а.

В ходе сборки библиотек с CFF-шрифтами в Flash CS5 неожиданно выяснилось (по правде сказать, я так и не пощупал FTE до сих пор), что для внедрения требуется библиотека textLayout.swc, которая может быть внедрена непосредственно в swf, либо может загружаться как RSL.

В первом случае кроме излишнего веса конечного swf, проблемы не было — тег DefineFont4 объявлен, шрифт есть, FontLoader пашет как автомат Калашникова. Во втором же случае Flash CS5 создает оболочку-прелоадер и в него внедряет наш swf, используя Embed (он же DefineBinaryData), т. е. в бинарном виде. Прелоадер загружает самого себя, загружает необходимые RSL и выполняет loadBytes внедренного swf. При подобной схеме FontLoader не находит в таком прелоадере шрифтов. В связи с этим, был добавлен рекурсивный анализ тегов DefineBinaryData на предмет наличия там валидного SWF. Проще говоря, теперь FontLoader умеет выдергивать шрифты из embedded-swf вне зависимости от вложенности.

Для подготовки библиотек со шрифтами можно использовать любой инструмент — Flash IDE от пятой версии до последней или Flash/Flex Builder (метатег [Embed]), либо Flex SDK.

Посмотреть демо и скачать примеры с исходниками класса.

TowerDefence #5. Поиск пути

TowerDefence #5. Поиск пути:

Для многих начинающих разработчиков поиск пути может оказаться достаточно сложной и непосильной задачей, но на самом деле не все так страшно, главное разобраться с основами.

пятница, 14 января 2011 г.

Осваиваем Flash. Часть 5.

Осваиваем Flash. Часть 5.:

Динозавры на конвейереВсем привет!

Давненько я не писал ничего нового, но сегодня я постараюсь восполнить этот пробел. Нам предстоит проделать много работы, так что наберитесь терпения и не торопитесь.
Итак, сегодня я опишу реализацию основного цикла приложения, мы набросаем менеджера сцены, конвейеры рендеринга и обновления, а также разберемся в реализации менеджера образцов.

Без лишних слов, приступим!




Прежде всего, давайте разберемся, чего мы хотим добиться, и что нам для этого понадобится.
Всегда и везде, мы хотим свести наше участие, как программиста, в работе системы к минимуму, предоставив дизайнерам возможность воплощать любые их, даже самые смелые, замыслы, не отвлекая нас от зарубов в Quake. Объекты в нашей программе должны быть максимально самостоятельными, нас не должно волновать ни их количество, ни их тип или детали их функционирования и взаимодействия. Это все конечно в идеале, в жизни все немножко сложнее, но без трудностей было бы просто не интересно.


  • Нам потребуется некоторый универсальный объект на все случаи жизни, таким объектом станет класс S_Node.
  • Для управления этими универсальными объектами нам понадобится менеджер сцены S_SceneManager. 
  • Так как менеджер сцены сам по себе не может хранить объекты, то для этой цели мы опишем менеджера образцов S_InstanceManager и расширим класс S_Node, создав класс S_Instance (потомок класса S_Node). Это связано с тем, что менеджер образцов работает только с объектами типа S_Instance.

Программист игровой логики будет создавать новые классы и объекты, наследуя класс S_Instance. Таким образом мы избавим его от необходимости вникать в тонкости функционирования системы в целом, давая возможность сосредоточится на реализации конкретного элемента интерактивного приложения или объекта игры.

Давайте остановимся на универсальном объекте S_Node и посмотрим, что он должен уметь. О расширении этого класса - S_Instance поговорим позже, когда доберемся до менеджера образцов [...]

вторник, 11 января 2011 г.

Введение в класс SimpleGraph

Введение в класс SimpleGraph:

Класс SimpleGraph: первый пример

Приложение, созданное в этом примере, будет чертить графики двух 'вшитых' в код функций, отслеживать положения точек на них, а также показывать расстояние между ними. Использование данного приложения должно помочь в нахождении самого большого расстояния между двумя кривыми - классической задаче из задачника (в реальной жизни данная задача решается с помощью производных).
Цель данного примера – показать возможности использования класса SimpleGraph, позволяющего создавать более сложные приложения.

Использование класса SimpleGraph
Простейший пример использования класса SimpleGraph

Самое важное свойство класса SimpleGraph – это свойство board, являющееся экземпляром другого класса – GraphingBoard. После обсуждения данного примера мы рассмотрим возможности использования методов класса GraphingBoard для усовершенствования внешнего вида графиков.

Настройки сцены

В этом приложении нам понадобится слайдер – slX и динамическое текстовое поле txtDistance.

Пишем код

Прежде всего, необходимо импортировать классы пакета flashandmath.as3.tools (SimpleGraph входит в состав данного пакета). Помните, что папка flashandmath должна быть в той же папке, что и исходный файл проекта. Ну и кроме этого импортируем дополнительные самого флеша [...]

пятница, 7 января 2011 г.

Mining Truck 2 и Santa Is Coming. Статистика и выводы

Mining Truck 2 и Santa Is Coming. Статистика и выводы:

С даты релиза игры Mining Truck 2 прошло чуть более месяца, а с даты релиза Santa Is Coming почти пол месяца, но уже сейчас можно смело рассуждать о результатах и смотреть на статистику [...]

среда, 5 января 2011 г.

29-30 января - конференция IndieSnow 2011 в Абзаково

29-30 января - конференция IndieSnow 2011 в Абзаково:

29-30 января состоится конференция независимых разработчиков флэш-игр в Абзаково (Челябинская область, рядом с Магнитогорском), известном горнолыжном курорте.

Идеологически конференция 'выросла' на базе сайтов flashgamedev.ru (Развитие Игровой Вспышки) и flashgameblogs.ru. Таким образом основными задачами этой конференции являются: обмен накопленным опытом в формате личного общения и расширение возможностей сообщества независимых разработчиков.

Однако мы не хотим ограничивать состав участников только инди разработчиками, мы приглашаем принять участие в конференции и представителей профильных компаний, и людей которые только начинают интересоваться флэшем как игровой платформой.

Да и если вы просто хотите хорошо отдохнуть на свежем воздухе в компании интересных
людей - обязательно приезжайте!

Всю информацию о конференции можно найти на сайте.

Принимаются заявки на доклады, а также интересные идеи (предложения) по поводу самой конференции [...]

Использование класса MathParser

Использование класса MathParser:

Этим постом я начну небольшую серию уроков-переводов. За основу взята 12 глава из книги 'Flash and Math Applets: Learn by example', доступная здесь. Перевод этот неточный, специально переработанный для использования совместно с Flex SDK (в книге все примеры разработаны во Flash IDE), но достаточный для начала работы с описываемыми классами. Также хочу отметить, что на сайте книги есть документация к описываемым классам и множество других очень интересных примеров, которые могут оказаться полезными для flash-разработчиков, интересующихся математикой. Итак, первый пример...

Пример 1. Простые вычисления с помощью класса MathParser

Мы начнем с примера, разъясняющего работу с классом MathParser. В приложении, показанном на рисунке 1, пользователь вводит выражение, зависящее от значения переменной x, и численное значение этой переменной, при этом допустим такой синтаксис, как sqrt(2*pi) или e^2. Затем, для вычисления значения выражения, пользователь нажимает клавишу ввода.
Заметьте, что для вычисляемых выражений класс MathParser использует математические функции и константы языка ActionScript. Подобно Java, JavaScript, C++, и многим другим языкам программирования, математические функции ActionScript и константы поддерживают двойную степень точности (не уверен правильно ли я перевел термин double precision accuracy). Важно учитывать данный факт, т.к. это может привести к странным (неожиданным) результатам. Например, если вы попробуете вычислить значение выражения tan(pi/2), то (т.к. значение константы pi/2 не может быть выражено в численном виде абсолютно точно) вы получите значение тангенса при значении переменной x очень и очень близком к pi/2 (но не равном ему), а это очень большое число (хотя как мы знаем, что функция тангенса не определена при pi/2). Мораль здесь в том, что, чтобы создать точный научный калькулятор, нужно проделать намного больше работы, чем просто суметь вычислить значения встроенных функций и констант языка программирования.

Настройка сцены

Чтобы создать приложение, изображенное на рис. 1, сначала нам понадобится несколько элементов на сцене. Это должны быть 2 текстовых поля для ввода текста с именами inVal и inExp и динамическое текстовое поле txtResult. Остальную работу сделает скрипт[...]

понедельник, 3 января 2011 г.

Видео: работа с языком MXML в редакторе Realaxy IDE

Видео: работа с языком MXML в редакторе Realaxy IDE:

Евгений Потапенко таки оказался быстрее ребят из FDT и FlashDevelop и реализовал поддержку MXML в редакторе RASE (Realaxy ActionScript Editor) в разы быстрее, чем это сделали они. Вот скринкаст о том, как работать с MXML в редакторе RASE - Realaxy ActionScript Editor. К сожалению, без звука:

[...]

воскресенье, 2 января 2011 г.

Добавление графики нашему механизму

Добавление графики нашему механизму:

Расширим предыдущий пример, добавив к нему графику и дополнительные возможности.
Код данного примера будет довольно сильно переработан.
1. Чтобы добавить графику, нужно сначала ее нарисовать. Здесь я не стал сильно мудрить, а просто взял картинку из предыдущего поста и разбил ее на несколько частей:

Корпус двигателя
Коленвал с маховиком
Шатун
Поршень

Сохранять эти изображения нужно в формате png, поддерживающем прозрачный фон.

2. Создаем новый AS3 проект во FlashDevelop, задавая размеры выходного файла равными 192х410 пикселей. Переносим файлы изображений деталей двигателя в папку lib нашего проекта.

3. В данном примере мы разделим кода на 3 логические части: первая будет отвечать за расчет положений механизма (своего рода модель), вторая – за отображение механизма на экране (вид) и третья – выполняет роль инициализатора приложения (создает модель и виды механизма) и контроллера для модели.

3.1. Сначала разберемся с кодом модели механизма, за нее будет отвечать класс MechModel [...]

OnlineGamer.cc – статы за декабрь

OnlineGamer.cc – статы за декабрь:

Поздравляю всех с наступившим Новым Годом!

И как я и обещал статистика по моему порталу за декабрь:
Посещений: 38 498
Просмотры страниц: 56 267
CTR: 1,66%
eCPM: 0,72 $
AdSense income: 40,57$

На первом месте трафик из Германии, потом идёт Турция и Венгрия. К сожалению США пока только на 5 месте. Будем над этим работать.

Портал продвигался двумя играми: Air Bubble Film (которая в силу трешовости особо трафика не принесла) и Adventures of Santa (выпущенный 20 декабря за 10 дней принёс 93% прибыли портала) [...]