PDA

Просмотр полной версии : Немогу понять алгоритм


player
10.04.2008, 12:41
Немогу понять алгоритм смены изображений в fash (http://www.molteni.it/eng/customer.php). То что они не повторяются (в момент времени на всей полосе) это понятно. А вот как их так менять то?

iNils
10.04.2008, 13:03
1. альфу с 0 до 100
2. пауза
3. под картинкой расположить новое изображение
4. альфу с 100 до 0
5. удалить картинку

player
10.04.2008, 16:39
немного не так поняли :) . Я имею ввиду все в целом.
Т.е.
Загружаем массив (неповторяемых случайных картинок)
Рисуем картинку поверх
и т.д.
сделал так (исходник прилагается) но ест память потихоньку. как быть?


var myClips = [pic_mc1, pic_mc2, pic_mc3, pic_mc4, pic_mc5, pic_mc6, pic_mc7, pic_mc8, pic_mc9, pic_mc10, pic_mc11];
...

var picMass:Array = new Array(10);
//массив для генерации случ. чисел (не повтор.)
var flagMass = [0,0,0,0,0,0,0,0,0,0];
//массив карта (для того что-бы знать где какая картинка стоит)
var mapMass = [0,0,0,0,0,0];
...
// тут первый раз выводим картинки
...
myClipsmy_interval = setInterval(automat, (Math.floor(Math.random()*2+1)*1000));
function automat() {
// позиция для смены картинки
posrnd = Math.random();
posrnd = posrnd*6;
posrnd = Math.floor(posrnd);
trace("posrnd = " + posrnd);
// выбираем картинку
rand = Math.random();
rand = rand*11;
rand = Math.floor(rand);
// проверяем есть ли она в заголовке
trace("first rand "+rand);
while (flagMass[rand] == 1) {

rand = Math.random();
rand = rand*10;
rand = Math.floor(rand);
for (var i:Number = 0; i <=10 ; i++) {
//trace("flagMass[i] "+flagMass[i]);
}

}
flagMass[rand] = 1;
flagMass[mapMass[posrnd]]=0;
mapMass[posrnd]=rand;
trace("rand = " + rand);
myClips[rand].swapDepths(ig++);
myClips[rand]._x = BTNW*posrnd;
myClips[rand]._y = 0;

myClips[rand]._alpha=0;
myClips[rand].onEnterFrame = function() {
if (myClips[rand]._alpha<100) {
myClips[rand]._alpha += 10;
} else {
delete myClips[rand].onEnterFrame;
}
};
}