Показать сообщение отдельно
Старый 07.10.2011, 14:27
Student2k1 вне форума Посмотреть профиль Отправить личное сообщение для Student2k1 Найти все сообщения от Student2k1
  № 1  
Ответить с цитированием
Student2k1
 
Аватар для Student2k1

Регистрация: Sep 2005
Сообщений: 18
По умолчанию Проблема с функцией рендома

Есть XML-документ, откуда берутся фотки для простого слайдшоу. Я решил сделать, чтобы у слайдов была случайная длительность демонстрации. Т.е. один слайд длится 5 секунд, второй допустим 2 секунды и т.д.
Объявил массив конкретных чисел и и при каждом отображении нового слайда задаю ему длительность отображения, упираясь на одно из чисел из массива рендомом. Но посидел посчитал и понял, что все равно все слайды с одинаковой длительностью отображаются. Вывел трейсом на экран, там числа набираются случайно и количество равно количеству картинок в XML. Я так понимаю, каждое из чисел присваивается каждой картинке. Так почему у меня в оутпуте все так, как надо, а по факту у всех одинаковая длительность?

Массив чисел:
Код AS1/AS2:
var speedArray = new Array(5, 7, 2, 10, 5, 7, 2, 10, 5, 7, 2, 10);
Функция вывода слайда:
Код AS1/AS2:
function callImages1() {
 
	_root.myMCL1 = new MovieClipLoader();
	_root.myPreloader1 = new Object();
	_root.myMCL1.addListener(_root.myPreloader1);
	_root.myClips_array1 = [];
 
	_root.myPreloader1.onLoadComplete = function(target1) {
           speedRan = speedArray[Math.round(Math.random()*speedArray.length)]; //генерация числа для расчета длительности отображения слайда
	    trace(speedRan);
		_root.myClips_array1.push(target1);
		target1._alpha = 0;
 
		if (_root.myClips_array1.length == _root.myImagesNo1) {
 
			_root.target_mc1 = -1;
			moveSlide1();
			myShowInt1 = setInterval(moveSlide1, (speedRan*1000)+1000); //расчет длительности отображения слайда
		}
 
	};
 
	for (i=0; i<_root.myImagesNo1; i++) {
 
		temp_url1 = _root.myImages1[i].attributes.url;
		temp_mc1 = myContainer_mc1.createEmptyMovieClip(i, myContainer_mc1.getNextHighestDepth());
 
		_root.myMCL1.loadClip(temp_url1,temp_mc1);
	}
 
 
}
Подскажите, что не так? И если можно, намекните, как сделать, чтобы каждый раз для отображения генерировалось новое число, а не все числа для всех слайдов одной пачкой?