Показать сообщение отдельно
Старый 19.10.2009, 00:02
a1. вне форума Посмотреть профиль Отправить личное сообщение для a1. Посетить домашнюю страницу a1. Найти все сообщения от a1.
  № 1  
Ответить с цитированием
a1.

Регистрация: Sep 2004
Сообщений: 42
Отправить сообщение для a1. с помощью ICQ
По умолчанию Доступ к прелоадеру картинки

Весь вечер голову ломаю — как получить доступ к прелоадеру картинки? Хочу его убрать после загрузки изображения, а не просто сверху закрыть изображением?
Код AS3:
private function xmlLoaded(e:Event)
{
	xml = new XML(e.target.data.replace(/\r\n/gi,"\n"));
	var cnt:Number = 0;
	for each (var img:XML in xml.album.image) {
		var ldr:Loader = new Loader();
		var imgPan:Sprite = new Sprite();
		imgPan.addChild(new Prel());
		imgPan.addChild(ldr);
		ldr.contentLoaderInfo.addEventListener(Event.OPEN, imgInit);
		ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, imgLoaded);
		ldr.load(new URLRequest('../gallery/' + xml.album.attribute('cat') + '/' + xml.album.attribute('name') + '/' + img.attribute('src')));
		images[cnt] = imgPan;
		images[cnt].x = cnt *100;
		images[cnt].y = 300;
		addChild(images[cnt]);
		cnt++;
	}
}
 
 
private function imgLoaded(e:Event)
{
	var bm:Bitmap = e.target.content as Bitmap;
	bm.smoothing = true;
	bm.x = - bm.width / 2;
	bm.y = - bm.height / 2;
}
Я может вообще не тем путём пошёл?

Добавлено через 1 час 56 минут
разобрался, сделал так:

Код AS3:
	private function xmlLoaded(e:Event)
	{
		xml = new XML(e.target.data.replace(/\r\n/gi,"\n"));
		var cnt:Number = 0;
		var imgPan:Sprite = new Sprite();
 
		for each (var img:XML in xml.album.image) {
			var ldr:Loader = new Loader();
			var imgPlaceHolder:Sprite = new Sprite();
			with (ldr) {
				contentLoaderInfo.addEventListener(Event.OPEN, imgInit);
				contentLoaderInfo.addEventListener(Event.COMPLETE, imgLoaded);
				visible = false;
				alpha   = 0;
				load(new URLRequest('../gallery/' + xml.album.attribute('cat') + '/' + xml.album.attribute('name') + '/' + img.attribute('src')));
			}
			imgPlaceHolder.addChild(ldr);
			images[cnt] = imgPlaceHolder;
			with (images[cnt]) {
				x = 1000;
				y = 300;
				visible = false;
				alpha   = 0;
			}
			imgPan.addChild(images[cnt]);
			cnt++;
		}
		var maska:Sprite = new Sprite();
		maska.graphics.beginFill(0x000000);
		maska.graphics.drawRect(0, 50, 960, 500);
		maska.graphics.endFill();
		imgPan.addChild(maska);
		imgPan.mask = maska;
		addChild(imgPan);
		beginSlideshow();
	}
 
	private function imgInit(e:Event)
	{
		var imgPlaceHolder:Sprite = (e.target as LoaderInfo).loader.parent as Sprite;
		var prel:Prel = new Prel();
		prel.name = 'prel';
		imgPlaceHolder.addChild(prel);
	}
 
	private function imgLoaded(e:Event)
	{
		var bm:Bitmap = e.target.content as Bitmap;
		bm.smoothing = true;
		bm.x = - bm.width / 2;
		bm.y = - bm.height / 2;
		var imgPlaceHolder:Sprite = (e.target as LoaderInfo).loader.parent as Sprite;
		imgPlaceHolder.removeChild(imgPlaceHolder.getChildByName('prel'));
		TweenMax.to((e.target as LoaderInfo).loader, .5, {autoAlpha: 1});
	}
Гуру, посмотрите пожалуйста код, что я неправильно делаю (всё работает, в целях самосовершенствования)


Последний раз редактировалось a1.; 19.10.2009 в 00:05.