Показать сообщение отдельно
Старый 08.07.2013, 21:37
Mareg вне форума Посмотреть профиль Отправить личное сообщение для Mareg Найти все сообщения от Mareg
  № 9  
Ответить с цитированием
Mareg

Регистрация: Jul 2013
Сообщений: 9
Так, в итоге заработал вариант с лоадером. Вот ведь интересная хрень, все уперлось в многопоточность флэша, точнее в асинхронность. В итоге сначала создается массив лоадеров, потом он грузит картинки. Следующим пунктом коллбэк события комплит, где считается все ли лоадеры закончили. И ТОЛЬКО после этого можно копировать лоадеры, в временные лоадеры для добавления на сцену, причем свойства новых лоадеров применяются только после события комплит, и соответственно доступ к длине, ширине, и прочим вещам ведется через базовый массив. Вот код:

Код AS3:
 
var he;
var wi;
var flp:Array;
var pole1;
var count;
var countMax;
 
 
function form(pole:Array,poole:Array)
{
	trace(0);
	flp=new Array();
	count=1;
	pole1=pole;
	countMax=18;
 
	for(var i=1;i<=countMax;i++)
	{
		 flp[i]= new Loader();
		 var urlReq:URLRequest = new URLRequest("imgs/"+i+".png");
		 flp[i].load(urlReq);
		 flp[i].contentLoaderInfo.addEventListener(Event.COMPLETE, loaded);
	}
 
	trace(1);
}
 
 
//paint(pole);
 
 
function paint(pole:Array)
{
	//trace(1);
	//trace(flp.length);
	var k:MovieClip=new MovieClip;
	for (var i = 0; i < 8; i++)
	{
	 for (var j = 0; j < 8; j++)
		{
 
			var ldr:Loader=new Loader();
 
			ldr.loadBytes( Loader(flp[pole[i][j]]).content.loaderInfo.bytes );
 
			var a=k.addChild(ldr);
 
			he=flp[pole[i][j]].content.height/2;//a.height/2; 
			wi=flp[pole[i][j]].content.width/2;//a.width/2;
 
			a.x=j*(-wi)+i*wi /*- wi*0.5*/;
			a.y=j*he+i*he;
 
			trace(a.x,a.y);
		}
	}
	addChild(k);
 
 
}
 
function loaded(e)
{
	//trace(count);
	if(++count>=countMax) 
	{
		paint(pole1);
	};
}
1) Кидаем в кадр
2)делаем папку с картинками
3) ...
4) PROFIT!!!



Всем спасибо.