Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 12.08.2010, 23:48
ferreg123 вне форума Посмотреть профиль Отправить личное сообщение для ferreg123 Найти все сообщения от ferreg123
  № 1  
Ответить с цитированием
ferreg123

Регистрация: Jan 2010
Сообщений: 4
По умолчанию Не работают stop в загружаемом swf после нового load()

Итак, соль. Есть простой анимационный ролик (1) AS2, который загружается в другой (2) AS3. 1 к слову начинается с пустого кадра, после которого идет 2 кадра с анимацией. На анимациях внутри него кое-где стоит stop();, чтобы стопорить анимацию. Не является экземпляром какого-либо класса-потомка Movie Clip. Тупо анимация и stop(); в конце нее. Далее. перейдем ко 2.

Код AS3:
loaderImage = new Loader();
loaderImage.contentLoaderInfo.addEventListener(Event.COMPLETE,imageLoaded);
loaderImage.load(new URLRequest(imageLink+"?dummy=" + Math.random()));
 
private function imageLoaded(e:Event){
image = new MovieClip();
image = e.target.content;
}
Далее добавляем его в список отображения addChild(image);

Все работает прекрасно. НО! Использую тот же самый loaderImage для нового запроса на загрузку - у image тут же слетает всякая реакция на расставленные stop();. Не видит их и гоняет все по циклу.

Вопрос, думаю, ясен - как избежать такого поведения?

Сделал в качестве эксперимента другой лоадер loaderImage1 и передал загрузку ему, а не loaderImage. Итог не изменился. Слетает и все.

Добавлено через 1 час 32 минуты
Вот полный код

Код AS3:
package{
	import flash.display.*;
	import flash.net.*;
	import flash.events.*;
	import flash.text.*;
	import flash.utils.*;
	import flash.system.*;
 
	public class MySlider extends MovieClip{
		//переменные
 
		public function MySlider(){
 
			//КОНСТРУКТОР 
 
		}
		private function startSlider(){
			loaderImage.load(new URLRequest(imagesLink[currentImage]+"?dummy=" + Math.random()));
			timer = new Timer(2000,1);
			timer.addEventListener(TimerEvent.TIMER,imageTimered);
			timer.start();
		}
		private function imageLoaded(e:Event){
			isLoaded = true;
			images[currentImage] = new MovieClip();
			images[currentImage] = MovieClip(e.target.content);
			//очень любопытно: если добавить ТУТ эти 2 строчки, а не в sliderIteration();
			// addChild(images[currentImage]);
			// images[currentImage].gotoAndStop(2);
			// - все работает, потому что видимо 
			//loaderImage.load вызывается позже в  sliderIteration(), после отсчета таймера
 
			if(isTimered&&isLoaded){
				sliderIteration();
			}
		}
		private function imageTimered(e:TimerEvent){
			isTimered = true;
			e.target.removeEventListener(TimerEvent.TIMER,imageTimered);
			if(isTimered&&isLoaded){
				sliderIteration();
			}
		}
		private function sliderIteration(){
			if(isTimered&&isLoaded){
				isTimered = isLoaded = false;
				addChild(images[currentImage]);
				images[currentImage].gotoAndStop(2);
				previousImage = currentImage;
				if(currentImage<imagesLink.length-1){
					currentImage++;
				}else{
					currentImage = 0;
				}		
				loaderImage.load(new URLRequest(imagesLink[currentImage]+"?dummy=" + Math.random()));
				timer = new Timer(delay,1);
				timer.addEventListener(TimerEvent.TIMER,imageTimered);
				timer.start();
			}
		}
	}
}


Последний раз редактировалось ferreg123; 08.09.2010 в 05:19. Причина: Доп наблюдения.
Создать новую тему   Часовой пояс GMT +4, время: 11:25.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
loader и stop , не работает stop

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 11:25.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.