Печатай и играй
Апрель 29, 2011

Качай “Крысь, добивай”, печатай и играй! Моя первая настольная игра по мотивам Манчкинской серии.
Разный код для дебаг и релиз версий
Декабрь 13, 2010
Работает во FlashDevelop:
CONFIG::debug {
trace("Only Debug version");
}
CONFIG::release {
Alert.show("Only release version code");
}
Также можно переопределять функции:
CONFIG::debug
private function init():void
{
initEditor();
initGame();
}
CONFIG::release
private function init():void
{
initGame();
}
Этот способ, не очень удобен, например при создании SWC библиотек. В таких случаях можно использовать:
public static var isDebug:Boolean = new Error().getStackTrace().search(/:[0-9]+\]$/m) > -1;
Прозрачный PNG и мышиные события
Июнь 11, 2010
У вас есть png картинка с прозрачными областями положенная в Sprite. События MouseEvent.ROLL_OVER и MouseEvent.ROLL_OUT срабатывают на прямоугольной области картинки вместо того, чтобы реагировать лишь на непрозрачные пиксели.
Демо:
Решение – скачать проект:
public function mouseHits(target:DisplayObject):Boolean{
if (target == null || target.stage == null){
return false;
}
if (target.hitTestPoint(target.stage.mouseX, target.stage.mouseY)){
var aMatrix:Matrix = new Matrix();
aMatrix.translate(-target.mouseX, -target.mouseY);
var bd:BitmapData= new BitmapData(1, 1, true, 0x00000000);
bd.draw(target, aMatrix);
var alpha:uint = ((bd.getPixel32(0, 0) >> 24) & 0xFF);
bd.dispose();
return alpha > 0x0F;
}
return false;
}
Дублирование загруженного в loader.content ролика
Июнь 2, 2010
Например, swf файл анимации один, а персонажей с этой анимацией несколько, а мы хотим продублировать эту анимацию без повторной загрузки файла.
Создаём новый fla файл с одним кадром на главном TimeLine, в котором лежит MovieClip, помеченный галкой Export for ActionScript. Тогда код дублирования будет примерно следующим:
try {
var content:MovieClip = loader.content as MovieClip;
if (content.numChildren == 1 && content.totalFrames == 1) {
var child:Object = content.getChildAt(0) as Object;
var ChildClass:Class = child.constructor as Class;
if (ChildClass != MovieClip && ChildClass != Shape && ChildClass != Sprite){
return new ChildClass();
}
}
}catch (err:Error){
}
return loader.content;
Загрузка видео с произвольной позиции
Февраль 24, 2010
Источник: flashcomguru.com
Для реализации проигрывания видео с любой позиции надо:
- Конвертировать видео в FLV
- Внедрить метаданные с помощью небольшой утилиты
- Разместить на сервере PHP скрипт
Пример сокет сервера для Flash на PHP
Февраль 24, 2010
Простой сокет сервер на php для небольшой онлайн игры лежит тут
Для того, чтобы запустить сервер на компьютере должен быть установлен php (например в сборке с Apache и MySQL). В командной строке windows пишем:
php [путь_к_socketServer.php]
Пример клиентской части можно посмотреть в файле SocketConnection.as.
Внедрение шрифтов
Февраль 24, 2010
Источник: garbage-collector.ru
[Embed(source="/../lib/fonts/Verdana.ttf", fontFamily="Verdana", fontStyle="italic", fontWeight="bold", unicodeRange="U+0020-U+007F, U+00A0-U+00FF, U+0400-U+04FF")] private var VerdanaFont:Class;
Список интервалов для unicodeRange (другие можно найти в flex sdk/frameworks/flash-unicode-table.xml):
- U+0020-U+007F — основная латиница;
- U+00A0-U+00FF — дополнительные символы, которые могут понадобиться (вроде знака © или русских кавычек-елочек);
- U+0400-U+04FF — кириллические символы верхнего и нижнего регистров.
- U+0030-U+0039,U+002E — цифры
Параметры fontStyle и fontWeight нужно использовать только в случае курсива или жирного шрифта во внедряемом файле.