Показать сообщение отдельно
Старый 07.12.2011, 22:53
Nillow вне форума Посмотреть профиль Отправить личное сообщение для Nillow Найти все сообщения от Nillow
  № 1  
Ответить с цитированием
Nillow

Регистрация: Dec 2011
Сообщений: 3
Question Air игра-стирание на Ipad тормозит

Создается маленькая игра на air под ipad.
если компилировать с обработкой CPU - жутко тормозит, под GPU - не запускается
использую flash cs5 + air 3.1

Вопросы:
1.1 как заставить обрабатываться GPU?
1.2 есть ли способ, который не будет тормозить?

если нужно, могу скинуть исходники.

Описание приложения:
2. в приложении необходимо производить операцию стирания.
есть два слоя. на первом кортинка, второй ее закрывает. водим стиркой по верхнему слою и видим нижний.
3. использую код, который позаимствовал тут http://habrahabr.ru/blogs/Flash_Platform/15165/
3.1 создание слоев
@front - верхний слой
@back - нижний слой
@brush - объект стирка
@mcParent - объект, на который это все ложится
Код AS3:
public function Eraser(front:BitmapData, back:BitmapData, brush:MovieClip, mcParent:MovieClip)
{
	this.front = front;
	this.frontAlpha = new BitmapData(this.front.width,this.front.height,true,0xFF000000);
	this.back = back;
	this._brush = brush;
	//
	rect = new Rectangle(0,0,this.front.width,this.front.height);
	point = new Point();
	matrix = new Matrix();
	frontAlpha.copyChannel(front, rect, point, BitmapDataChannel.ALPHA, BitmapDataChannel.RED);
	//
	this.mcParent = mcParent;
	this.mcParent.addChild(new Bitmap(this.back));
	this.mcParent.addChild(new Bitmap(this.front));
	this.mcParent.addChild(_brush);
	brush.visible = false;
}
3.2 процесс стирания
@tx, ty - координаты мыши
Код AS3:
public function erase(tx:Number, ty:Number):void
{			
	_brush.x = tx;
	_brush.y = ty;
	matrix.tx = tx;
	matrix.ty = ty;
	frontAlpha.draw(_brush, matrix);
	front.copyChannel(frontAlpha, rect, point, BitmapDataChannel.RED, BitmapDataChannel.ALPHA);
}

спасибо всем заранее.


Последний раз редактировалось Nillow; 08.12.2011 в 09:00.