Показать сообщение отдельно
Старый 12.09.2006, 19:41
artcraft вне форума Посмотреть профиль Отправить личное сообщение для artcraft Посетить домашнюю страницу artcraft Найти все сообщения от artcraft
  № 16  
Ответить с цитированием
artcraft
 
Аватар для artcraft

блогер
Регистрация: Aug 2005
Адрес: www.artcraft.cz
Сообщений: 1,967
Записей в блоге: 6
Отправить сообщение для artcraft с помощью ICQ
ура я сделал это :~)
теперь для тестовых целей можно провацировать GC сработать тогда, когда это вам угодно

у меня срабатывает в течении 2-х секунд

Код:
package {
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.TimerEvent;
	import flash.utils.Timer;

	public class Test extends Sprite {
		
		function Test():void {
			var a:Sprite = new Sprite();
			a.addEventListener(Event.ENTER_FRAME, efListner, false, 0, true);			
			addChild(a);removeChild(a);a=null;
			
			function efListner(e:Event):void {trace('Please delete me...');}
			
			forceGCRun();
		}
		
		
		private function forceGCRun():void{
			var a:Sprite;
			var count:uint;
			var oldCount:uint;
			var timer:Timer;
			
			a = new Sprite();
			a.addEventListener(Event.ENTER_FRAME, efListner, false, 0, true);			
			addChild(a);removeChild(a);a=null;
			function efListner(e:Event):void {count++;}

			timer = new Timer(1000);
			timer.addEventListener("timer", timerHandler, false, 0, true);
			timer.start();
			
			function timerHandler(e:TimerEvent):void {
				if(oldCount == count){
					 trace(':)', timer.currentCount);
					 timer.stop(); timer=null;
				}
				oldCount = count;
				for (var n:uint=0; n<10000; n++){
					a = new Sprite();	addChild(a);removeChild(a);a=null;
				}
			}
		}
				

	}
}
__________________
Хороший отдых - половина работы.