2011-01-27 1 views
0

Я ищу для отображения трех изображений, выбранных случайным образом при загрузке, на протяжении всего рекламного баннера. В основном, эти изображения являются подсказками для здоровья, отображаемыми на столбе, это - когда он играет, пост-он улетает, раскрывая следующий совет. Мне также необходимо убедиться, что изображения не повторяются. Я в основном парень в хронологическом порядке, но я изучал AS и не испытываю проблем с отображением одного изображения для случайного отображения - однако три отдельных из них без повторения бросают меня. Мои мысли должны либо a) Поместите все изображения на отдельный кадр в пределах 3 MC, и каким-то образом отобразите случайный кадр внутри этого клипа при загрузке, не гарантируя повторения или . B) Загрузите изображения в 3 отдельных MC через и XML doc, и выберите один случайным образом. Любые мысли или точки в правильном направлении были бы высоко оценены. EDIT - я должен был уточнить ... Изображения появляются только по одному, поэтому я думаю, что каждый MC будет содержать только одно из трех выбранных случайных изображений. Так можно ли загрузить случайное изображение в MC, а затем дублировать этот MC без возможности повторения изображения?Вспышка - случайный показ изображения, не повторяется

ответ

0

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

перетасовать массив можно использовать что-то вроде этого:

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)) 
+0

ах, я вижу выход работает отлично - как применить его к MC, содержащий изображения? то есть у меня есть AS в пустой кадре на верхнем слое - нижний слой содержит 3 кадра MC с изображениями. – collin

+0

Это будет зависеть от вашего кода, если вы хотите зацикливаться на изображениях или нет. Но вы вытаскиваете текущий индекс из массива, а затем делаете mc.gotoAndPlay (index) – goliatone

+0

Извините, если это идиотский вопрос ... но как вы тянете индекс? :) высоко оценил – collin

Смежные вопросы