Poslao: 24 Sep 2008 12:18
|
offline
- stogor

- Građanin
- Pridružio: 06 Sep 2008
- Poruke: 150
- Gde živiš: Obrenovac
|
Znam da je za vas majstore flasha ovo trivijalno pitanje, ali meni treba pomoc.
Ovako: Pravim jedan flash, imam recimo 5 layera u njemu, u svakom layeru je po nesto. U jednom nekoliko slika, u drugom nekoliko tekstova, u trecem movie clip i tako dalje. Svaki layer ima samo jedan frame u kojem je sve ovo.
Ja bih sada zeleo 5 dugmeta on/off koji ce u startu biti svi "on". Klikom na jedno dugme, ono treba da promeni izgled u "off" i da iskljuci vidljivost celog layera na koji se odnosi. Sledeci klik da radi suprotno: da promeni izgled dugmeta u "on" i da sve u layeru na koji se odnosi ponovo postane vidljivo.
Hteo bih otprilike da ta dugmad funkcionisu kao ono oko u .fla dokumentu.
Kad kliknem na to oko ono postane "precrtano oko" i ceo layer postane nevidljiv.
Obicno dugme znam da napravim, cak i da mu ubacim poneke akcije, ali ovo mi nikako ne uspeva.
Hvala unapred...
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
Poslao: 25 Sep 2008 17:02
|
offline
- Tamtitam

- Legendarni građanin
- Pridružio: 19 Maj 2005
- Poruke: 5224
- Gde živiš: Oslo
|
AS2.0
kod u frame 1:
stop();
var kliknuto:Boolean;
dugme.onRelease=function(){
if(!kliknuto){
this.gotoAndStop(2);
gotoAndStop(2);
kliknuto=true;
}else{
this.gotoAndStop(1);
gotoAndStop(1);
kliknuto=false;
}
}
u frame 2 stavi samo:
stop();
Dugme napravi da bude movieClip. Dupli klik na njega. U dugmetovoj vremenskoj liniji napravi jos jedan key frame. U njega stavi sliku precrtanog dugmeta ili sta vec zelis. Upisi stop(); na oba ova "unutrasnja" key frame-a.
Na glavnoj vremenskoj liniji dodaj jos po jedan frejm (prazan key frame za svaki layer) i napravi kako hoces da ti scena izgleda kad se sve skloni sa nje.
Dugme neka zauzima oba frejma, i 1 i 2.
Dugmetu daj ime: dugme (u properties).
|
|
|
|
Poslao: 26 Sep 2008 09:57
|
offline
- stogor

- Građanin
- Pridružio: 06 Sep 2008
- Poruke: 150
- Gde živiš: Obrenovac
|
Hvala Tamtitam. tvoje resenje radi izvanredno, ali ipak nije ono sto sam ja zeleo. Ili mozda nisam sve uradio kako treba. Najbolje da budem konkretan:
Pravim plan grada u flashu, i do sada sam uradio ovako:
- layer1 - nacrtao sam ulice, reke i obojio pozadinu i to je osnova koja se uvek vidi.
- layer2 - napisao nazive ulica i naselja
- layer3 - nacrtao semafore i obelezio jednosmerne ulice
- layer4 - nacrtao i obelezio najznacajnije objekte grada
- layer5 - postavio ikonice sa kojih se otvaraju fotografije grada
- layer6 - nacrtao koordinatnu mrezu
- layer7 - nisam jos nacrtao, ali planiram da ubacim linije gradskog prevoza i gradske autobuske stanice.
E sada, ovakav plan grada moze da bude veoma pretrpan. Zato ja zelim da onaj ko gleda plan moze da izabere sta ce se videti. Tako na primer, layer1 ce biti stalno vidljiv, jedan korisnik zeli da vidi samo nazive ulica i koordinatnu mrezu, drugi zeli samo semafore i znacajne objekte, treci zeli objekte i fotografije, cetvrti samo objekte i linije gradskog prevoza i tako dalje. U startu bi sve bilo vidljivo, a posetilac bi po potrebi iskljucio ono sto mu smeta, po potrebi ponovo ga ukljucio, a iskljucio nesto drugo i tako dalje.
Znaci, sve kombinacije trebaju biti u opticaju. Da li je ovako nesto uopste moguce?
Pozdrav...
|
|
|
|
Poslao: 26 Sep 2008 14:13
|
offline
- lnenad

- Stručni saradnik
Web
- Pridružio: 16 Jan 2007
- Poruke: 2860
- Gde živiš: Bijeljina
|
AS 2.0 (kopiram moga gurua tj. Tamtitam:))
stop();
var kliknuto:Boolean;
dugme.onRelease=function(){
if(!kliknuto){
_root.mc_imelayera._visible = true;
kliknuto=true;
}else{
_root.mc_imelayera._visible = false;
kliknuto=false;
}
}
E sad ovo je sa glave mrsko mi da testiram ispravi me Tamti ako ne valja
|
|
|
|
Poslao: 29 Sep 2008 15:16
|
offline
- Tamtitam

- Legendarni građanin
- Pridružio: 19 Maj 2005
- Poruke: 5224
- Gde živiš: Oslo
|
...iliti 'gurka' u zenskom rodu
Inenade, to resenje je skroz u redu, samo jedno kratko dodatno objasnjenje:
mc_imelayera mora biti movieClip koji ce sadrzati sve elemente sa jednog layera. Dakle, ne mozes sam layer da ucinis nevidljivim, ali mozes sve sto se na njemu nalazi da "upakujes" u jedan movieClip, da taj movieClip nazoves mc_imelayera u properties i da to ime posle koristis u toj
mc_imelayera._visible = true;
naredbi.
Ovo ponovis za svaki layer ili ako imas volje, sve odradis kroz array dugmadi i layera.
|
|
|
|
Poslao: 04 Okt 2008 12:40
|
offline
- stogor

- Građanin
- Pridružio: 06 Sep 2008
- Poruke: 150
- Gde živiš: Obrenovac
|
Hvala oboma na trudu. Tek danas sam stigao da isprobam ovo po vasim savetima. Skoro da sam uspeo....
Nesto nisam dobro uradio, pa nisam dobio rezultat kakav sam zeleo.
Ovako: U posebnom layeru, koji sam nazvao "on/off" sam napravio dugme-obican zeleni kruzic i pretvorio ga u movie clip. Unutar njega sam u prvi frame napisao kod stop();, a u drugi frame takodje samo sto je sada crveni kruzic. Na glavnoj sceni u layeru "on/off" uneo sam kod koji je napisao Inenad. Sve elemente layera koji se zove "mreza" pretvorio sam u movie clip koji sam nazvao "mc_mreza".
Kada se pokrene swf na prvi klik se ne desava nista. Od drugog klika pa na dalje dugme iskljucuje i ukljucuje vidljivost movie clipa mc_mreza, ali dugme stalno ostaje zeleno.
Gde sam pogresio???
Pozdrav...
|
|
|
|
Poslao: 05 Okt 2008 14:56
|
offline
- Tamtitam

- Legendarni građanin
- Pridružio: 19 Maj 2005
- Poruke: 5224
- Gde živiš: Oslo
|
Fali ti mozda
this.gotoAndStop(2); u prvom delu "if" upita (pomera dugmetov frejm na 2.)
i
this.gotoAndStop(1); (vraca ga nazad)
u "else" delu.
Inace, cini se da je greska u logici, promeni if(!kliknuto) u if(kliknuto) pa testiraj.
|
|
|
|
Poslao: 07 Okt 2008 09:14
|
offline
- stogor

- Građanin
- Pridružio: 06 Sep 2008
- Poruke: 150
- Gde živiš: Obrenovac
|
Evo opet mene i evo opet skoro da sam uspeo. Juce sam probao, eksperimentisao, patio se.... Tacno je da mi je falilo ono "this.gotoAndStop" zbog cega dugme nije htelo da pocrveni. Ali, ako je inenad napisao kod bez toga, a Tamtitam podvrdila da je to skroz u redu, sta ja sad tu smem da cackam?
Dosao sam do toga da kod mora da izgleda ovako:stop();
var kliknuto:Boolean;
dugme.onRelease=function(){
if(!kliknuto){
this.gotoAndStop(2);
_root.mc_koordinate._visible = false;
kliknuto=true;
}else{
this.gotoAndStop(1);
_root.mc_koordinate._visible = true;
kliknuto=false;
}
} Nijedna druga kombinacija true i false ne radi kako treba. Ovo radi savrseno.
Ali radi savrseno kada je samo jedno dugme u pitanju. Po istom principu sam nacrtatao i ubacio jos dugmadi. I svako dugme samo za sebe radi to sto treba da radi.
E, sad.... prvi klik na bilo koje dugme radi kako treba. Ako posle jednog klika na neko dugme kliknem na neko drugo, ono ne reaguje na prvi klik, vec na drugi. I na drugi klik uradi to sto treba. Eksperimentisao sam sa brisanjem stop naredbi u svom kodovima, menjao gotoAndStop u gotoAndPlay, ali nisam uspeo ovo da izbegnem.
Nije ovo preveliki problem, jer ce onaj koji koristi ovaj flash pomisliti da prvi put nije kliknuo kako treba, kliknuce opet i uradice to sto je zeleo Ali ipak, moze li i ovo da se popravi.
Pozdrav . . .
|
|
|
|
Poslao: 07 Okt 2008 15:20
|
offline
- lnenad

- Stručni saradnik
Web
- Pridružio: 16 Jan 2007
- Poruke: 2860
- Gde živiš: Bijeljina
|
Da bih ti olaksali najbolje bi ti bilo da uploadujes negdje fla pa da ga postavis ovdje.
|
|
|
|
Poslao: 07 Okt 2008 18:01
|
offline
- beli0135

- Executor
- Pridružio: 03 Jan 2005
- Poruke: 2990
- Gde živiš: Beograd
|
Probaj ovako...
(ovo [Bindable] ima u Flex-u, za flesh ne znam, ali mislim da je poneta u tome sto niko ne zna da se varijabla promenila.
Probaj prvo ovo:
[Bindable]
var kliknuto:Boolean = false;
//malo otimizacije code-a
dugme.onRelease=function()
{
if(!kliknuto)
{
this.gotoAndStop(2);
_root.mc_koordinate._visible = kliknuto;
}
else
{
this.gotoAndStop(1);
_root.mc_koordinate._visible = kliknuto;
}
kliknuto = !kliknuto;
}
Ukoliko [Bindable] ne radi, moraces da napravis setter i getter za kliknuto. Samo kada je setter namesten, event je poslat da se varijabla promenila.
|
|
|
|