Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   очистить значение BitmapData (http://www.flasher.ru/forum/showthread.php?t=209298)

climfree 28.10.2014 15:27

очистить значение BitmapData
 
Здравствуйте!
Использую. кеширование для растровых анимаций с помощью этого метода (это не весь метод, а только часть).
но при воспроизведении кешированых мувиков - ужасно растет опретивка пользователя(до 2 Гб).

Код AS3:

var bmpd:BitmapData = new BitmapData(Math.ceil(r.width), Math.ceil(r.height), true, 0x00000000);
// Кэшируем клип
var m:Matrix = new Matrix();
var n:int = clip.totalFrames;
for (var i:int = 1; i <= n; i++)
{
        clip.gotoAndStop(i);
        allChildGotoFrame(clip, i);
 
        var bmpd:BitmapData = new BitmapData(Math.ceil(r.width), Math.ceil(r.height), true,0x00000000);               
 
        m.identity();
        m.translate(-r.x, -r.y);
        m.scale(clip.scaleX, clip.scaleY);
        bmpd.draw(clip, m);
        frames[frames.length] = bmpd;
}

протестировав заметила, что если
var bmpd:BitmapData = new BitmapData(Math.ceil(r.width), Math.ceil(r.height), true,0x00000000);
вынести за пределы цикла, то оперативка спадает до 400мб(что очень круто!)
но если так сделать то получается что изображения одного роллика налаживаются олдин на другой.
подскажите, пожалуйста, как это исправить.
как удалять значение bmpdб но при этом чтоб не влияло на значение frames[frames.length]?

MikroAcse 28.10.2014 15:42

В данном случае лучше не кешировать, или у вас очень много кадров, или сам мувик очень большой.

illuzor 28.10.2014 16:25

Битмапдата вычищается из памяти методом dispose().

climfree 28.10.2014 17:24

да, dispose() хороший метод, но применив его к bmpd очищается и значение frames[frames.length] , поскольку frames[frames.length] = bmpd;

Gerbert 28.10.2014 17:58

А что такое frames и где его длина увеличивается?

Rzer 28.10.2014 19:40

Импортируйте ваши анимации в PNG секвенции и добавляйте их в MovieClip во Flash IDE

cleptoman 29.10.2014 00:49

BitmapData#fillRect

dimarik 30.10.2014 20:54

Цитата:

Сообщение от climfree (Сообщение 1174244)
Использую. кеширование для растровых анимаций

Какая необходимость вызвала желание кэшировать растровые анимации? Векторная пересчитывается, согласен.


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

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