Помощь · Поиск · Пользователи · Календарь
Полная версия этой страницы: переменные и память
Flash Zone Forum > Macromedia Flash > Начинающим
serenya1983
Когда переменная объявлена в функции, когда она освободит память!?
function test() {
var v:Int=10;
}
Как освободить память, которую занимает созданный класс!?
var my = new myClass();
HaWK
Память вообще очищает Garbage Collector (Сборщик Мусора) когда приходит время (его также можно вызвать вручную). Чтобы GC удалил объект из памяти надо убрать все имеющиеся на него ссылки и обнулить собственно.
Код
my = null;


P. S.

"Int" с маленькой буквы - int
InCoNsTaNcY
Пробовал обнулить, все равно память увеличивается..
Код
package  
{
    import flash.display.Sprite;
    
    /**
     * ...
     * @author alonzo
     */
    public class AudioList extends Sprite
    {
        private var _songs_items:Vector.<AudioItem>;
        private var showingItems:Vector.<AudioItem>;
        
        private var list:Sprite;
        
        private var itemCount:int;
        private var itemH:int;
        private var itemW:int;
        
        
        private var border_color:int = 0xDCE4F5;
        private var bground_color:int = 0xDCE4F5;
        
        public function AudioList(_w:int, _h:int, _count:int) {
            itemW = _w;
            itemH = _h;
            itemCount = _count;
            _songs_items = new Vector.<AudioItem>();
            showingItems = new Vector.<AudioItem>();
            list  = new Sprite();
            this.addChild(list);
        }
        
        public function Draw():void {
            Clear();
            list = new Sprite();
            var q:int;
            var _y:int = 1;
            for (q = 0; q < itemCount; q++ ) {
                if ( q < _songs_items.length){
                    _songs_items[q].y = _y;
                    list.addChild(_songs_items[q]);
                    showingItems.push(_songs_items[q]);
                    _y += _songs_items[0].itemH + 1;
                }
            }
            this.addChild(list);
        }
        public function Clear():void {
            this.removeChild(list);
            list = null;
        }

        public function addSong(ArtistName:String, SongName:String, Url:String):void
        {
            _songs_items.push(new AudioItem(itemW, itemH, ArtistName, SongName, Url));
            Draw();
        }
    }

}

Когда вызываю перерисовку несколько раз ( метод Draw() ) то в диспечере задач можно увидеть как память программы увеличивается.

P. S Только начал изучать флеш)
chingachgoog
/forum/index.php?showto...ost&p=13871
Русская версия IP.Board © 2001-2017 IPS, Inc.