Руководство по actionscript. часть 2, стр. 107
Например, представьте приложение для демонстрации изображений в режиме слайд-шоу, которое использует класс ImageLoader для загрузки изображений с сервера через определенные интервалы времени. Код класса ImageLoader выглядит следующим образом:
package { import flash. events.*: import flash. utils.*:
public class ImageLoader { private var loadlnterval:int;
public function ImageLoader (delay:int = 1000) { loadlnterval = setlnterval(loadlmage. delay);
}
public function loadlmage ( ):void { traceC’Now loading image…»); // Код загрузки изображения // здесь не приводится
}
}
}
Теперь представьте, что основной класс приложения SlideShow реализует функциональность для запуска и остановки слайд-шоу. Для запуска слайд-шоу класс SlideShow создает экземпляр класса ImageLoader, управляющего процессом загрузки изображений. Экземпляр класса ImageLoader сохраняется в переменной экземпляра imgLoader, как показано в следующем коде: «
imgLoader = new ImageLoader( );
Для остановки или приостановки слайд-шоу класс SlideShow удаляет ссылку на экземпляр класса ImageLoader, как показано в следующем коде:
imgLoader = null;
Когда переменной imgLoader присваивается значение null, экземпляр класса ImageLoader становится доступным для сборки мусора. Тем не менее, до тех пор пока этот экземпляр не будет фактически удален из системной памяти, операция загрузки в экземпляре ImageLoader, реализованная на базе функции setlnterval ( ), будет регулярно выполняться.