[ sojic @ 17.11.2003. 15:43 ] @
Radim neki slajd šou u Flešu, i javi se GLUPI problem.

U primere, našao sam slajd šou, malo modificirao (da ide automatski, a ne onclick na button). On radi. Zove se auto.swf.

Imam MainMovie (main.swf). Tu je konstrukcija. Imam prazan klip u Library. Ubacim na Stage, dam instance name = AutoShow, u frejmu pišem akciju:

AutoShow.loadMovie("auto.swf");

i sve radi kao što treba.

Ali..... taj autošou (valjda ga znate), menja slike bez pauzu. Znači, fadein pic1, fadeout pic1, fadein pic2...... Meni treba fadein pic1, pauza od X sekunde, fadeout pic1...... Za to koristim još jedan primer (Timer - štoperica) koj dolazi u Fleš paketu.

Ideja je da taj tajmer meri vreme i na odreѓeno vreme da kaže AutoShow.stop(), i AutoShow(play).

Evo koda:

Code:

function restartTimer() {
    seconds = 0;
    buttonPressTime = getTimer()/1000-pauseLength;
    //pause();
}

function pauseTimer() {
    pauseTime = getTimer()/1000;
    timing = false;
}

function unpause() {
    unpauseTime = getTimer()/1000;
    pauseLength = (unpauseTime-pauseTime)+pauseLength;
    timing = true;
}

_root.onEnterFrame = function() {
    totalTime = getTimer()/1000-pauseLength;
    goTime = totalTime-buttonPressTime;
    // 
    if (timing) {
        seconds = Math.floor(goTime);
            trace(seconds);
    }
    if (seconds==4) {
        restartTimer();
        pauseTimer();
    }
};

Kad u MainMovie ubacim ovaj tajmer, NE RADI AUTOŠOU. Izbrišem, radi!

Normalno u MainMovie imam sad:

AutoShow i Timer (MovieClips).

U tajmeru, ne vidim nikakav razlog zašto ne bih radio AutoŠou. Pokušao sam da ubacim u dva Layer-a, pokušao sam da napravim novi fajl timer.swf, takoѓe i timer u library.

Evo i koda iz Auto.swf

Code:

//initialize variables and properties
square._alpha = 0;
whichPic = 0;
//initiate change to new image when buttons are clicked
_root.onEnterFrame = function() {
        if (whichPic<80 && !fadeIn && !fadeOut) {
            fadeOut = true;
            whichpic++;
            if (whichPic<10) {
                whichPic="0"+whichPic;
            }
        }
        // when a new Photo is selected, fade out, load new image, and fade in
        if (square._alpha>10 && fadeOut) {
            square._alpha -= 10;
        }
        if (square._alpha<10) {
            loadMovie("../images/"+whichPic+".jpg", "square");
            fadeOut = false;
            fadeIn = true;
        }
        if (square._alpha<100 && fadeIn && !fadeOut) {
            square._alpha += 10;
        } else {
            fadeIn = false;
        }
};
s
[ Nikola Denić @ 18.11.2003. 00:02 ] @
ne mozes da koristis _root instancu i loadMovie instancu , uvek ce da ti se javi problem .... Koristi samo loadMovie ili samo _root .... Eto toliko .... P.S. Imas www.flashkit.com ( sad sam ko manca LOL ) , tamo imas gotove scriptice koje ce da ti zavrse posao , i imas i sa loadMovie ....

Srecno ...
[ noviKorisnik @ 18.11.2003. 08:30 ] @
Ne moraš da se igraš sa tajmerom. Već imaš Auto, malo ga preuredi da vozi kako ti želiš.

Ubaci sledeće 2 promenljive u inicijalizacionu sekciju Auta:
Code:
holdframes = 12;
holder = 0;
Holdframes je broj frejmova koliko želiš da ti slika bude zadržana od trenutka kada se završi FadeIn do trenutka započinjanja FadeOut faze. Ovo ima veze s framerate filma, default je 12, tako da ova vrednost odgovara jednoj sekundi. Postavi vrednost za holdframes po svojoj potrebi.

Dalje, treba da modifikuješ deo onEnterFrame funkcije (samo početni deo, prvi if), na sledeći način:
Code:
_root.onEnterFrame = function ()
{
  if (whichPic<80 && !fadeIn && !fadeOut)
  {
    holder++;
    if (holder > holdframes)
    {
      holder = 0;
      fadeOut = true;
      whichpic++;
      if (whichPic<10) whichPic="0"+whichPic;
    }
  }
//  ostalo je isto
}
Jedna napomena: Ovako predstavljeno, radi tačno za 80 slika (šta ako ih je manje ili više?). Preporučujem da ovu brojku izvučeš kao promenljivu kako bi mogao da izmene obavljaš u inicijalizacionoj sekciji. Još bolje je da vrednost ove promenljive vučeš iz master dokumenta :D
[ sojic @ 18.11.2003. 23:56 ] @
Hvala na savetima. Rešio sam problem bez tajmera, možda na malo glupi način, ali radi. Evo koda:

//initialize variables and properties
square._alpha = 0;
RedenBr = 0;
//initiate change to new image when buttons are clicked
_root.onEnterFrame = function() {
if (RedenBr<80 && !fadeIn && !fadeOut && !stoj) {
fadeOut = true;
RedenBr++;
}
// when a new Photo is selected, fade out, load new image, and fade in
if (square._alpha>10 && fadeOut) {
square._alpha -= 10;
}
if (square._alpha<10) {
if (RedenBr == 0) {
RedenBr = 1;
}
if (RedenBr < 10) {
Fajl="0"+RedenBr;
}
else {
Fajl=RedenBr;
}
loadMovie("../images/"+Fajl+".jpg", "square");
_root.Avtor = _root.Ime[RedenBr]+ " - "+_root.Slika[RedenBr];
fadeOut = false;
fadeIn = true;
}
Vreme = 100*(1+Math.floor(_root.Slajdovi.Sekundi/2));
if (square._alpha<Vreme && fadeIn && !fadeOut) {
square._alpha += 10;
} else {
fadeIn = false;
}
};


Znači, Vreme = 100*(1+Math.floor(_root.Slajdovi.Sekundi/2)); računam vreme ,t.e. računam Alpha na square.
if (square._alpha<Vreme - ovde imam alpha na primer 1000. tako da kad oduzima 10, dobijem 10 sekundi.

Ideja sa holdframes mi se sviѓa. Možda ќu da je iskoristim sledeќi put, pošto sad nemam vremena.

U svakom slučaju hvala.