Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flash Приложения: AIR, Zinc и тд. (http://www.flasher.ru/forum/forumdisplay.php?f=94)
-   -   Air игра-стирание на Ipad тормозит (http://www.flasher.ru/forum/showthread.php?t=172373)

Nillow 07.12.2011 22:53

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);
}


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

Zebestov 08.12.2011 03:32

Нужно оформить код тегами (кнопка AS3)

Nillow 10.12.2011 23:18

в общем, решил использовать методы
Код AS3:

setPixel, getPixel

процесс стирания не такой красивый, но работает без тормозов

джонатан 21.12.2011 18:59

Позвольте полюбопытствовать, как вы умудрились писать на AIR 3.1 из Flash Professional? На сколько я знаю, флеш ограничен версией 2.7, выше это уже их под Flash Builder.

Nillow 21.12.2011 20:02

http://kb2.adobe.com/cps/908/cpsid_90810.html


Часовой пояс GMT +4, время: 02:46.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.