Autor Zpráva
dahaus
Profil *
Ahoj,
snažím se vyřešit tento problémek. Chci do hlavní scény načítat mc po stisku tlačítka další a opačně zase pro zpět, jedná se o galerii. Problém mám v tom že tedy udělám nějaké pole kde definuji mc které se mi mají načítat clips = new Array("test1.swf", "test2.swf")
nastavím counter na 0
Counter = 0;
a nactu mc na stage
klip.loadMovie(clips[Counter++]);

a toto použí na button next na stisknutí klip.loadMovie(clips[Counter++]);

ale problém je v tom, že pokud překročím stisknutím počet klipů tak se nic neděje a když chci zase nazpátek klip.loadMovie(clips[Counter--]); tak to nefunguje zase správně a proklikám se zase až před klip 1, potřebuji to nějak ošetřit aby bylo zadáno maximální a minimální počet klipů a nějak upravit funkci, nebo přijít s nějakým elegantnějším řešením, nemáte někdo takové ?

Díky
sanxo
Profil *
potrebujes tam dat podmienku, ktora ti bude ohodnocovat, ci premenna counter nie je mensia ako nula, alebo zas vecsia ako velkost pola. Nieco ako

function nacitajMC (zmenit){
if (counter<=0 && counter >clips.length){
klip.loadMovie(clips[Counter+zmenit]);
}
}

a sucasne do buttonov:

1.dalsi -

nacitajMC (1);




2.zpet -

nacitajMC (-1);


nepisal som tam udalosti buttonu (je to len sposob ako to vyriesit)
sanxo
Profil *
oprava:

if (counter<0 && counter >clips.length){


inac by ti hladalo pri vracani "spět" aj clips[-1] :-)
sanxo
Profil *
kurna nemam dobry den :-//

samozrejme to ma byt:

if (counter > 0 && counter < clips.length){


sorry
dahaus
Profil *
vyzkousel jsem to, ale nějak mi to nejde rozchodit spise zakomponovat do stavajiciho kodu, slo by mi to popsat ten cely kod pokusil jsem se nahradit tou funkci posledni radek kodu a nahradit kod u tlascitek ale nejde mi to diky .-)
sanxo
Profil *
mozno, ze mas chybu v cestach

ten kod treba upravit pre aktualny projekt, ale podstatne je, ze musis kontrolovat, aby ti premenna counter neprekrocila pocet poloziek pola. Cize ak mas 6 poloziek v poli, counter musi byt v intervale <0, 5>, aby si vedel polozky z pola vytahovat. Tvoj povodny kod robil to, ze ti counter zvecsovalo za tieto hranice.
dahaus
Profil *
Tak jestli muzu poprosit tady je kompletni kod, porad to nacita za ten interval :-(

clips = new Array("test1.swf", "test2.swf")
Counter = 0;
_root.klip.loadMovie(clips[Counter++]);
function nacitajMC (zmenit){
if (counter > 0 && counter < clips.length){
klip.loadMovie(clips[Counter+zmenit]);
}
}

takto se mi nacte na stage prvni obrazek
a pak nabutonu jsem dal kod

on (press) {
klip.loadMovie(clips[Counter++]);
nacitajMC (1);
}

kde tedy je chyba ? :-(
sanxo
Profil *
prave na tom pracujem
chyba je v mojom rieseni - nie je dotiahnute dokonca :-)
dahaus
Profil *
Co kdyby ta kontrola byla na tlačítku ?
něco jako

on (press) {
if (counter > 0 && counter < Countermax) {stop();
}
else {klip.loadMovie(clips[Counter++]);}
}

ale aby to fungovalo toto mi nejde :-)
dahaus
Profil *
jo pridal jsem si globalni Countermax = 4
pocet poli
sanxo
Profil *
takze mam to:

na hlavnej casovej osi je:


clip = new Array();
clip = ["mc.swf", "mc1.swf", "mc2.swf", "mc3.swf"];
counter = 0;
function nacitajMC(zmenit) {
counter = (Counter+zmenit);
klip.loadMovie(clip[counter-1]);
}



v buttone spet je:


on (release) {
if (_root.counter>1) {
_root.nacitajMC(-1);
}
}


v buttone dalej je:



on (release) {
if (_root.counter<_root.clip.length) {
_root.nacitajMC(1);
}
}


inac ja osobne na taketo veci vyuzivam XML. Tento sposob nevyuzivam
sanxo
Profil *
inac tu je zdrojak.
dahaus
Profil *
a nejaky jednoduchy zpusob pres XML taky jsem o tom premyslel
jestli muzu otravovat, programovani neni muj konicek ale snazim se :-)
sanxo
Profil *
pockaj pozriem

:-))
sanxo
Profil *
no v podstate je to to iste, akurat udaje netahas z pola, ale z XML objektu - takze asi ti to bude nanic :-(
dahaus
Profil *
diky moc :-)

jeste si pohravam s tim ze tam dam timer aby se po kliknuti nacteni dalsiho klipu spustilo az treba po 5 sec, potrebuji to aby se mi ten predchozi klip prehral az nakonec a pak zaclo nacitani dalsiho klipu, snad to pujde s getTimer a tak :-)

neznam zatim zadne elegantni zpusoby jak to resit, ale patram a patram a clovek se porad uci :-)
sanxo
Profil *
poradim ti:

1. do existujucej funkcie nacitajMC daj na jej koniec prikazy my_btn.enabled = false , ktory ma hodnotu true, alebo false - sposobi aktivnost/neaktivnost buttonu, a mozes tam dat aj nastavenie alfy napr. na 30 pre MC v ktorom su buttony (zvyraznis tym inaktivitu buttonov)
2. vytvor si funkciu (s nazvom napr. zapnibtn), ktora bude pre kazdy button obsahovat prikaz my_btn.enabled = true, plus nastavis alfu na 100
3. do kazdeho externeho swf das na posledny prehravany frame prikaz, ktory zavola funkciu _root.zapnibtn (). Tym sa buttony znovu aktivuju


my_btn je nazov ktory si buttonu zadal (musis zadat aj cestu k buttonu )
Toto téma je uzamčeno. Odpověď nelze zaslat.