Показать сообщение отдельно
Старый 02.06.2010, 10:22
zuxul вне форума Посмотреть профиль Отправить личное сообщение для zuxul Найти все сообщения от zuxul
  № 23  
Ответить с цитированием
zuxul

Регистрация: Dec 2009
Адрес: 59°13′N, 39°54′E
Сообщений: 445
Записей в блоге: 1
Я бы сказал, почти асинхронно: загрузка забирает себе все время выполнения...
Вот код, которым я пробовал разорвать последовательность загрузки...
test.png - файл в 5 мегабайт
Код AS3:
package 
{
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.ProgressEvent;
	import flash.net.URLLoader;
	import flash.net.URLRequest;
	import flash.utils.*;
 
	public class Main extends Sprite 
	{
 
		public function Main():void 
		{			
			super();
			addEventListener(Event.ADDED_TO_STAGE, init);
		}
 
		private var interval:int;
 
		private function init(e:Event):void
		{
			removeEventListener(Event.ADDED_TO_STAGE, init);
			var urlRequest:URLRequest = new URLRequest("lib/test.png");
			var urlLoader:URLLoader = new URLLoader;
			urlLoader.load(urlRequest);
			urlLoader.addEventListener(Event.COMPLETE, completeListener);
			urlLoader.addEventListener(ProgressEvent.PROGRESS, progressListener);
			addEventListener(Event.ENTER_FRAME, enterFrameListener);
			trace("after: " + getTimer());
			interval = setInterval(intervalFunction, 0.0000001);
 
		}
		private var removeInterval:int = 6;
		private function intervalFunction():void {
			if (removeInterval-- == 0) {
				clearInterval(interval);
			}
			trace("Interval: " + getTimer());
		}
 
		private var removeEnterFrame:int = 6;
		private function enterFrameListener(e:Event):void {
			trace("enter frame: " + getTimer());
			if (removeEnterFrame-- == 0) {
				removeEventListener(Event.ENTER_FRAME, enterFrameListener);
			}
		}
 
		private function progressListener(e:ProgressEvent):void {
			trace("progress: " + getTimer());
		}
 
		private function completeListener(e:Event):void {
			trace("complete: " + getTimer() );
		}
	}
}