PDA

Volledige versie bekijken : een mc (on)zichtbaar met dezelfde klik-functie


faena
%Europe/Berlin %773 %2009, 18:33
Waar ik niet aan uit kom;

Ik heb een movieclip genaamd mc_wit en een mc_kristallen.. (gedoe gaat over witte kerst.. vandaar)
In eerste instantie moet mc_kristallen onzichtbaar zijn.
Bij een muisklik op mc_wit wil ik dat mc_kristallen zichtbaar wordt.
Als mc_kristallen zichtbaar is en er wordt weer op mc_wit geklikt, moet mc_kristallen weer onzichtbaar worden.

Dit klinkt zelfs mij niet zo heel moeilijk.. kom er alleen de hele middag al niet aan uit :S .
Ik wil gebruik maken van variabelen (gotoAndStop is geen optie aangezien ik dat al voor andere onderdelen heb gebruikt en dan moet ik teveel grafische mogelijkheden in frames gaan stoppen= heel onoverzichtelijk).

Dit is mijn code zover:
mc_kristallen._visible = false;
this.mc_wit.onRelease = function() {
mc_kristallen._visible = true;
};
this.mc_wit.onRelease = function() {
mc_kristallen._visible = false;
};
stop();

Zooooo lang geleden dat ik iets met variabelen heb gedaan..
Als iemand mij een zetje in de goede richting kan geven; eeuwige dank!

Dauntless
%Europe/Berlin %775 %2009, 18:36
onRelease is een eigenschap van de MovieClip classe, net zoals _x dat is.

Als je dit doet:
mc_wit._x = 50;
mc_wit._x = 60;
Dan gaat mc_wit enkel op 60 staan, wat je waarschijnlijk wel begrijpt. Met onRelease is het net hetzelfde: In plaats van een nummer op te slaan, sla je nu een functie op.

De kortste manier:
this.mc_wit.onRelease = function()
{
mc_kristallen._visible = !mc_kristallen._visible;
}
Aangezien _visible een boolen is, kan je er een boolean operatie op uitvoeren: De ontkenning. Elke keer verandert in dit geval de _visible van true naar false en weer terug.

Een langere manier, die misschien beter te begrijpen is:
this.mc_wit.onRelease = function()
{
if(mc_kristallen._visible) mc_kristallen._visible = false;
else mc_kristallen._visible = true;
}

Nog een andere manier, om duidelijk te maken dat de onRelease ook gewoon een property is:
function hide()
{
mc_kristallen._visible = false;
this.onRelease = show;
}

function show()
{
mc_kristallen._visible = true;
this.onRelease = hide;
}

this.mc_wit.onRelease = hide;

faena
%Europe/Berlin %798 %2009, 19:09
Aha! Ik snap hoe de voorbeelden die je geeft in elkaar steken! (en uiteraard werken ze!)
Nu nog een kwestie van onthouden voor een volgende keer ;)
Ontzettend bedankt!!