![]() |
|
||||||||||
|
|||||
|
Регистрация: Dec 2013
Сообщений: 13
|
Не получается зациклить воспроизведение панорам.
Вообще останавливается после одного раза проигрывания Что делаю не так? import flash.display.Bitmap; import flash.display.BitmapData; import flash.events.Event; import flash.display.Loader; import flash.events.TimerEvent; import flash.utils.Timer; var n_img:Array = ["img/0_1.jpg", "img/0_2.jpg", "img/0_3.jpg", "img/0_4.jpg", "img/0_5.jpg", "img/0_6.jpg", "img/0_7.jpg", "img/0_8.jpg", "img/0_9.jpg", "img/0_10.jpg", "img/0_11.jpg", "img/0_12.jpg", "img/0_13.jpg", "img/0_14.jpg", "img/0_15.jpg"]; var ldr:Loader = new Loader(); var myBitmap:Bitmap = new Bitmap; //var minuteTimer:Timer = new Timer(50, 50); var minuteTimer:Timer = new Timer(50, 2400); for (var nn=0; nn<=15; ) { ldr.load(new URLRequest(n_img[nn])); ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, ldr_complete); function ldr_complete(event:Event):void { myBitmap = new Bitmap( (ldr.content as Bitmap).bitmapData ); addChild(myBitmap); } minuteTimer.addEventListener(TimerEvent.TIMER, onTick); minuteTimer.addEventListener(TimerEvent.TIMER_COMPLETE, onTimerComplete); minuteTimer.start(); function onTick(event:TimerEvent):void { myBitmap.bitmapData.scroll(-1,0); } function onTimerComplete(event:TimerEvent):void { trace("Time's Up!"); removeChild(myBitmap); trace(minuteTimer.currentCount); minuteTimer.reset(); minuteTimer.removeEventListener(TimerEvent.TIMER, onTick); minuteTimer.removeEventListener(TimerEvent.TIMER_COMPLETE, onTimerComplete); minuteTimer.stop(); ldr.contentLoaderInfo.removeEventListener(Event.COMPLETE, ldr_complete); nn++; } } |
|
|||||
|
Регистрация: Mar 2012
Адрес: г.Новосибирск
Сообщений: 381
|
ну так протрейсите, на каком этапе перестает работать, грузится ли вторая панорама? Запускается ли второй раз таймер,
ну и вообще по идее так должно быть function ldr_complete(event:Event):void { myBitmap = new Bitmap( (ldr.content as Bitmap).bitmapData ); addChild(myBitmap); minuteTimer.addEventListener(TimerEvent.TIMER, onTick); minuteTimer.addEventListener(TimerEvent.TIMER_COMPLETE, onTimerComplete); minuteTimer.start(); } и вообще это нужно делать не циклом а рекурсией, в которую передавать путь к файлу |
|
|||||
|
listener
|
Вешать в цикле тучу обработчиков комплита на лоадер, да еще хендлером указать вложенную в цикл же функцию -за это уже можно руки оборвать. Вот вам ктото их и оборвал, по-видимому. Потом, что вы хотите-то? Вы по таймеру скролите непонятно что все время -1. Что у вас должно по-новой проигрываться? Уехало все, что можно, потом удалили все. Откуда второму и последующему проигрыванию взяться?
Совсем безруким рекомендуется понатыкать трейсов побольше на разные переменные и потом неимоверным усилим ума понять, что же у вас происходит, собственно, и происходит ли вообще? Не пробовали? Попробуйте, это весело. О, пардон, там не только хендлеры вложены в цикл, там вообще все плохо. И таймер стартует в цикле и вообще все.... |
|
|||||
|
Регистрация: Dec 2013
Сообщений: 13
|
Цитата:
Добавлено через 1 минуту Цитата:
помогите исправить! |
|
|||||
|
listener
|
Попробуйте для начала загрузить все изображения, добавить их в массив и убедитесь, что все загружено и отображается и позиционируется. Крутить имеет смысл только после этого. Не валите все в одну кучу-цикл. Приведите этот код загрузки, если не будет получаться, дальше посмотрим. Не нужно пока таймеров и скролов, Просто загрузка, подготовительный этап всех дальнейших действий. Начальных знаний для этого у вас должно хватить. Даже на основе вашего кода. Поиск по форуму "загрузка изображений", картинок, галереи в помощь.
Что за потребительское отношение к форуму? Работайте и будет счастье. И хватит твердить по руки и "помогите". Если же у вас их действительно нет - обратитесь в вакансии. Впрочем, я не настаиваю. Может сидеть и ждать еще неделю. |
![]() |
![]() |
Часовой пояс GMT +4, время: 16:43. |
|
|
« Предыдущая тема | Следующая тема » |
|
|