WN

WN (https://www.wn.se/forum/index.php)
-   Klientsidans teknologier, design och grafik (https://www.wn.se/forum/forumdisplay.php?f=12)
-   -   Flash - Byta movieclip (https://www.wn.se/forum/showthread.php?t=11039)

Jonas 2005-11-26 20:07

Jag har sökt på Google i nästan 3h nu utan att hitta något som kan vara till hjälp.
Så nu frågar jag här istället i hopp om att få en bra och fungerade lösning.

jag har 6st olika movieclips.
3 st som representerar off och 3st som representerar on.

Jag vill visa dom som representerar "off" som standard och ifall någon aktivitet sker så skall "on" visas.

Ett bra exempel blir väl status ikonerna på Lunarstorm.
Dock inte samma funktion men det samma tanke bakom.

off clippen ligger under on clippen och koden ned funkar inte som jag vill.

Kod:

if (_root.act1 <= 0) _root.mc1.mc1_on._visible = true;
else _root.mc1.mc1_on._visible = false;

if (_root.act2 <= 0) _root.mc2.mc2_on._visible = true;
else _root.mc2.mc2_on._visible = false;

if (_root.act3 <= 0) _root.mc3.mc3_on._visible = true;
else _root.mc3.mc3_on._visible = false;

Så nu är min tanke att jag vill visa dom olika clippen istället.
Är tex: _root.act3 == 0 så skall mc3_off visas och är den mer än 0 så skall mc3_on visas.

Hur löser man det?

koala 2005-11-26 20:15

!= istället för <= (eller egentligen >= som du formulerade frågan)

koala 2005-11-26 20:17

Eller så här för kompakthetens skull
Citat:

_root.mc3.mc3_on._visible = _root.act3 ? true : false;

Jonas 2005-11-26 21:42

koala> Det var inte det svaret jag ville ha. Eftersom det inte fungerar oavsett om jag har <=, >= eller !=.

(Och ja, <= var ett slarvfel när jag skrev koden)

Jag vill byta ut allting så att jag visar antingen eller. Att positionera ut dom olika movieclipen istället för att ha dubbla.

blixtsystems 2005-11-27 00:51

Så är tex. _root.act1=true vill du att _root.mc1.mc1_on syns,
och om _root.act1=false är det _root.mc1.mc1_off??

Då skall det fungera med den kod koala postade, så för alla clips inklusive off:
Kod:

_root.mc1.mc1_on._visible = _root.act1 ? true : false;
_root.mc1.mc1_off._visible = _root.act1? false : true;
_root.mc2.mc2_on._visible = _root.act2 ? true : false;
_root.mc2.mc2_off._visible = _root.act2 ? false : true;
_root.mc3.mc3_on._visible = _root.act3 ? true : false;
_root.mc3.mc3_off._visible = _root.act3 ? false : true;

Om inte det fungerar kan det ha med scope problem att göra.
Kolla att allt är som det ska med:
trace("on clip:"+_root.mc1.mc1_on+", off clip:"+_root.mc1.mc1_off+", act:"+_root.act1);

Jonas 2005-11-27 01:22

NJae, nu är det så att act1-3 kan vara mer än just 1 & 0.

Skall se om jag kan lösa det efter några timmars sömn iaf...

koala 2005-11-27 03:07

Nu är Actionscript inte mitt största expertområde, men jag tror allt som är skilt från noll räknas som true i logiska uttryck. Annars borde du kunna typecasta med (bool)_root.act1 skulle jag tro.

blixtsystems 2005-11-27 18:48

Citat:

Originally posted by koala@Nov 27 2005, 04:07
Nu är Actionscript inte mitt största expertområde, men jag tror allt som är skilt från noll räknas som true i logiska uttryck. Annars borde du kunna typecasta med (bool)_root.act1 skulle jag tro.
Det stämmer i AS också.
undefined, NaN, null, 0 är alla detsamma som false i den typen av utvärderingar.
En sträng, ett object, ett movieclip samt numeriska värden utom 0 värderas som true.

miche 2005-11-29 13:23

vet inte om det är detta du vill ha? men den ska ligga i mc som du laddar in filerna i.

if(this._currentframe == 1)
{
_root.mc1.mc1_on._visible = true;
_root.mc1.mc1_off._visible = false;
this.gotoAndStop(2);
}
else
{
_root.mc1.mc1_on._visible = false;
_root.mc1.mc1_off._visible = true;
this.gotoAndStop(1);
}

miche 2005-11-29 13:24

ops, glömde det viktigaste: när en aktivitet händer så sätter du mc.gotoAndStop(2);


Alla tider är GMT +2. Klockan är nu 14:08.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson