Вспышка - отображение случайного изображения, без повтора - PullRequest
0 голосов
/ 27 января 2011

Я хочу отобразить три изображения, выбранные случайным образом при загрузке, на протяжении всего рекламного объявления.По сути, эти изображения являются подсказками здоровья, отображаемыми на посте, который - как он играет, пост - он слетает, открывая следующий совет.Мне также нужно убедиться, что изображения не повторяются.В основном я работаю на временной шкале, но я изучаю AS и не испытываю проблем с отображением одного изображения в случайном порядке - однако три отдельных без повторения меня отбрасывают.Мои мысли: а) Поместите все изображения в отдельный кадр в пределах 3 MC и каким-то образом отобразите случайный кадр в этом клипе при загрузке, гарантируя отсутствие повторения, или b) Загрузите изображения в 3 отдельных сквозных MC и документ XML,и выберите один наугад.Любые мысли или точки в правильном направлении будет высоко ценится.РЕДАКТИРОВАТЬ - Я должен был уточнить ... Изображения появляются только по одному за раз - поэтому я думаю, что каждый MC будет содержать только одно из 3 выбранных случайных изображений.Так можно ли загрузить случайное изображение в MC, а затем скопировать этот MC без шанса повторения изображения?

1 Ответ

0 голосов
/ 27 января 2011

Ну, один из способов сделать это, следуя вашим мыслям, это: Положите изображения в один MC. Создайте массив, содержащий номер кадра, соответствующий каждому изображению. Перемешайте этот массив, чтобы получить случайный порядок. Воспроизведите кадр изображения, используя кадр из перемешанного массива.

Чтобы перемешать массив, вы можете использовать что-то вроде этого:

function shuffleArray(a:Array):Array {
    var copy:Array = a.concat()
    var length:int = copy.length;
    var result:Array = new Array(length);
    for(var i:int = 0; i<length; i++)
    {
    result[i] = copy.splice(int(Math.random() * (length - i)), 1)[0];
    }
    return result;
}

, чтобы использовать метод, просто:

var imgFrames:Array = [1,2,3];
trace( shuffleArray(imgFrames) )
trace( shuffleArray(imgFrames) )
trace( shuffleArray(imgFrames) )
...