![]() |
|
||||||||||
|
|||||
|
Регистрация: Aug 2009
Сообщений: 99
|
Циклом создаю несколько пронумерованных мувиков, которые выстраиваю в столбец.
В том-же цикле загружаю МКЛоадером туда картинки. Нужно: чтоб загруженные картинки по очереди "появлялись" (Tween _alpha и _x). Очерёдность реализую: setTimeout(showImgBox, delay) Результат: не получается, картинки появляются одновременно ((( код: 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 сек полюбому должна быть заметна - но она незаметна, значит её нет или всё-таки нужно мудрить с очерёдностью?(( заранее премного благодарен! |
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
В setTimeout() вы передаете не ссылку на функцию, а результат вызова функции, т.е. ничего.
|
|
|||||
|
Модрон-ветеринар
|
А не хотите сначала загрузить все картинки в процессе загрузки ролика, а потом уже запускать очередь на их появление?
|
|
|||||
|
Регистрация: Aug 2009
Сообщений: 99
|
2udaaff: спасибо, действительно ссылка решает
2mooncar: ну, думал об этом, когда некоторое время назад создавал топик с вопросом похожим на этот. просто почему-то кажется, что каждую картинку (даже если она всего 46х46 и 1.5К) прикольней загружать с хоть короткой, НО анимацией прелоадера (w2.0? ). в данный момент наверное таки заморочусь и покумекаю над while циклом и поочерёдной загрузкой. вот разобрался с таймаутом, но теперь в функции, которую он запускает не додумаюсь как ПРАВИЛЬНО объявить составную переменную (чтоб каждый вызов функции создавал новый "Tween"+num твин) пробовал: varTarget['varTween'+num] = new Tween(mc, '_alpha', showImgBoxAlphaType, 0, 100, showImgBoxAlphaTime, true); . пробовал: this['Tween'+num] = new Tween(mc, '_alpha', showImgBoxAlphaType, 0, 100, showImgBoxAlphaTime, true); . А именно объявление переменных твинов нужны для того, чтоб типизировать и получить возможность повесить на последний из них onMotionFinished (в конце загрузки-появления последней превью-картинки хачю, чтоб появился скроллбар). Плюнул и написал в функции просто создание твина: ну да, твин вроде последовательный (вследствии setTimeout и увеличивающегося интервала вызова функции с твином), но отлов загрузки последней превью пришлось реализовывать некультурным способом. есть мысли? < тоесть подскажите, плз, в чём моя ошибка в создании составного имени переменной ? Последний раз редактировалось mj_nooker; 08.12.2009 в 08:28. |
![]() |
![]() |
Часовой пояс GMT +4, время: 12:43. |
|
|
« Предыдущая тема | Следующая тема » |
| Теги |
| settimeout |
|
|