Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Немогу понять алгоритм (http://www.flasher.ru/forum/showthread.php?t=110857)

player 10.04.2008 12:41

Немогу понять алгоритм
 
Немогу понять алгоритм смены изображений в fash. То что они не повторяются (в момент времени на всей полосе) это понятно. А вот как их так менять то?

iNils 10.04.2008 13:03

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

player 10.04.2008 16:39

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

Код:

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;
                }
        };
}



Часовой пояс GMT +4, время: 15:29.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.