![]() |
|
||||||||||
|
|||||
|
Регистрация: Jun 2008
Сообщений: 11
|
Привет,
Задача стоит такая: Из XML файла подгружается картинка с описанием и линком. Нужно, чтобы рандомно менялись по 4 картинки. Удалось добиться, чтобы подгружались картинки подряд.. например 2,3,4,5... а хочется, чтобы было 2,7,1,3 и без повторений. Код рандома теперь таков: function loadImages() { var min = 0; var max = total-3; var p1 = min + Math.floor (Math.random() * (max)); var p2 = p1+1; var p3 = p1+2; var p4 = p1+3; if (loaded == filesize) { picture._alpha = 0; picture.loadMovie(image[p1], 1); desc_txt.text = description[p1]; btn = link[p1]; picture2._alpha = 0; picture2.loadMovie(image[p2], 1); desc_txt2.text = description[p2]; btn2 = link[p2]; picture3._alpha = 0; picture3.loadMovie(image[p3], 1); desc_txt3.text = description[p3]; btn3 = link[p3]; picture4._alpha = 0; picture4.loadMovie(image[p4], 1); desc_txt4.text = description[p4]; btn4 = link[p4]; } } Чтобы картинки менялись после определённого количества времени сделал таким образом: просто заставляя проигрывать мувиклип ещё раз.. это тоже явно не оптимальный вариант. и прелодер явно тоже оптимизируется )) Простите за грамматику. Жду коментариев )) |
|
|||||
|
Вот код возвращающий 4 случайных значения из массива:
var arr:Array = ["a", "b", "c", "d", "e", "f", "g", "h", "j"]; function RandoMyCity(a:Array):Array { var arr1:Array = a.slice(); var arr2:Array = []; for (i=0; i<4; i++) { arr2.push(arr1.splice(Math.random()*arr1.length, 1)); } return arr2; } trace(RandoMyCity(arr)); Цитата:
|
|
|||||
|
Регистрация: Jun 2008
Сообщений: 11
|
Не получаеться массив из XML передать этой функции :/
Последний раз редактировалось ambu; 30.01.2009 в 17:40. Причина: не просмотрел хелп о массивах )) |
|
|||||
|
А каким интересно образом вы пытаетесь его передать ?
|
|
|||||
|
Регистрация: Jun 2008
Сообщений: 11
|
есть переменная total, которая выдаёт общее количество записей в хмл.
Пытаюсь её разбить на составляющие 1, 2, 3 и т.п. .. потом перемешать и подставить место этого var p1 = min + Math.floor (Math.random() * (max)); var p2 = p1+1; var p3 = p1+2; var p4 = p1+3; Добавлено через 2 минуты кстати, спасибо за setTimeout. Стало значительно лутше и без глюков )) |
![]() |
![]() |
Часовой пояс GMT +4, время: 14:51. |
|
|
« Предыдущая тема | Следующая тема » |
| Теги |
| random , xml |
|
|