Показать сообщение отдельно
Старый 05.12.2009, 07:44
mj_nooker вне форума Посмотреть профиль Отправить личное сообщение для mj_nooker Найти все сообщения от mj_nooker
  № 1  
Ответить с цитированием
mj_nooker

Регистрация: Aug 2009
Сообщений: 99
По умолчанию setTimeout не работает?

Циклом создаю несколько пронумерованных мувиков, которые выстраиваю в столбец.
В том-же цикле загружаю МКЛоадером туда картинки.
Нужно: чтоб загруженные картинки по очереди "появлялись" (Tween _alpha и _x).
Очерёдность реализую: setTimeout(showImgBox, delay)
Результат: не получается, картинки появляются одновременно (((

код:

Код AS1/AS2:
stop();
 
import mx.transitions.Tween;
import mx.transitions.easing.*;
 
var imgBox_X:Number = -10 //для стартового бокса с превью в polyPrvContainer_mc
var imgBox_Y:Number = 0; //для стартового бокса с превью в polyPrvContainer_mc
var shag_Y:Number = 10; //верт. отступ между картинками
var showImgBoxAlphaType = None.easeNone;
var showImgBoxType = Elastic.easeOut;
var showImgBoxAlphaTime = 0.2;
var showImgBoxTime = 0.4;
 
var imgListener:Object = new Object();
var imgLoader:MovieClipLoader = new MovieClipLoader();
 
		imgListener.onLoadStart = function(mc:MovieClip):Void
		{
			mc._alpha = 0;
			mc._x = 0;
			mc._y= imgBox_Y;
 
			imgBox_Y+=(46+shag_Y); //46 - высота картинки
		}
 
		imgListener.onLoadInit = function(mc:MovieClip):Void
		{
			trace('imgListener:  центрирую картинку в '+mc._name);
			mc._x = Math.round((mc._parent._width-mc._width)/2);
			mc._y +=mc._x;  //прибавляем значение сдвига по Х, так как у нас картинка квадратная и верт.сдвиг=горизонт.
			var nomer = mc._name.substr(9,1);
			setTimeout(showImgBox(mc,nomer),nomer*1000);
		}
 
 
imgLoader.addListener(imgListener);
 
function showImgBox(mc:MovieClip, num:Number):Void
{
	varTarget = mc;
	varTarget['varTween'+num] = new Tween(mc, "_alpha", showImgBoxAlphaType, 0, 100, showImgBoxAlphaTime, true);
	moveTo_X=mc._x;
		//var showImgBoxTween:Tween = new Tween(mc, "_x", showImgBoxType, imgBox_X, moveTo_X,  showImgBoxTime, true);
}
 
var poly_xml:XML = new XML();
poly_xml.ignoreWhite = true;
var total_poly:Number;
 
poly_xml.onLoad = function(success):Void
{
	if (success)
	{
		total_poly = poly_xml.childNodes.length;
			for (var i = 0; i<total_poly; i++)
			{
				var imgBox_mc:MovieClip = polyPrvContainer_mc.createEmptyMovieClip('imgBox_mc'+i, polyPrvContainer_mc.getNextHighestDepth());
 
				var img_path:String = poly_xml.childNodes[i].childNodes[0].firstChild.nodeValue+'-but.jpg';
 
				imgLoader.loadClip(img_path, imgBox_mc);
			}
	} else 
			{
				trace('Невозможно открыть XML');
			}
}
 
poly_xml.load('xml/poly.xml');
Думаю, гвоздь где-то в физической очерёдности загрузки картинок: нет очерёдности, грузятся вразнобой, из-за этого сетТаймаут не работает.
Но тут ещё такая штука - когда выставляю, например, 20 000 мс якобы на появление каждой картинки - задержка в 20 сек полюбому должна быть заметна - но она незаметна, значит её нет или всё-таки нужно мудрить с очерёдностью?((

заранее премного благодарен!