Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Приаттачивание одинаковых мувиков-классов и расход памяти. (http://www.flasher.ru/forum/showthread.php?t=85019)

xintrea 14.09.2006 00:44

Приаттачивание одинаковых мувиков-классов и расход памяти.
 
Здравствуйте!

Раньше (вроде на этом форуме) читал, что мувик-класс можно приаттачить двумя способами. Первый способ - с большим расходом памяти, когда мувик просто тупо приаттачивается. При этом в память грузятся все свойства и методы класса. Второй способ - как то хитро создаются ссылки на базовый (?) мувик, и в памяти хранятся только свойства, а методы в память не дублируются. Тем самым сильно сокращается занимаемая память, особенно если дублируется много объектов.

Щас бросился искать - не могу найти. Искал в статьях, искал на форуме. Видимо я не могу сформулировать что мне надо, ничего толком не нашол.

Чтобы вопрос был более предметным, вот всем известный пример - класс треугольника. Этот код лежит в первом кадре отдельного мувика, которому в Linkage Propreties присвоен идентификатор libtriangle.

Код:

#initclip
function TriangleClass () {
    this.cobj = new Color(this);
    this.update();
}

// Позволяем объекту TriangleClass наследовать свойства MovieClip
TriangleClass.prototype = new MovieClip();

// Обновляем внешний вид треугольника.
TriangleClass.prototype.update = function () {
    if (this.applyTint) {
        this.cobj.setRGB(this.tcolor);
    }
    this._xscale = 10 * this.tbase;
    this._yscale = 10 * this.theight;
}

// Связываем класс с мувиклипом
Object.registerClass("FTriangle", TriangleClass);
#endinitclip

Первым способом можно 100 раз приаттачить этот мувик-класс так

Код:

 
for(num=0;num<100;num++)
 this.attachMovie("libtriangle","triangle_"+num,num);

А как можно приаттачить этот класс вторым способом? То есть, чтобы не шел расход памяти на метод update(), ведь эта функция одинакова для всех экземплятов.

Напишите пожалуста код или дайте плиз ссылку где про это толком написано.

Спасибо.

etc 14.09.2006 13:34

duplicateMovieClip? =)


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

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