PDA

Volledige versie bekijken : Alle mc's enabled=false; 1 uitzondering


alexa
%Europe/Berlin %443 %2009, 11:39
Hallo mensen,
blijf stoeien met popkaders en daarin sluitvlakjes, die op zelfde plek staan. Maar het script wordt steeds eenvoudiger.
Ik het nu een testje, waarin de movieclips knop1/2/3 de kaders1/2/3 laten oppoppen. In die kaders zitten sluitvlakjes kader1.sluit, kader2.sluit en kader3.sluit.
Wat ik wil bereiken is het volgende: wanneer ik knop1 heb ingedrukt, moet kader1 verschijnen, maar tegelijkertijd alle knoppen op enabled=false staan, behalve kader1.sluit.
Ik denk dat ik met het volgende script dichtbij ben, maar het gedeelte, dat kader1.sluit enabled=true moet zijn, werkt niet.
Hoe krijg ik dat wel voor elkaar?

var knoppen:Array=[knop1, knop2, knop3, kader1.sluit, kader2.sluit, kader3.sluit]
function knoppenAanUit(str:String)
{

for(var i:Number=0; i<knoppen.length; i++)
{
if(str=="aan")
{
knoppen[i].enabled=true;
}
else if(str=="uit")
{
knoppen[i].enabled=false;
}
}
}
kader1._alpha=0;
kader2._alpha=0;
kader3._alpha=0;


for(var i:Number=1; i<4; i++)
{
var knop:MovieClip=this["knop"+i];
var kader:MovieClip=this["kader"+i];
var sluit:MovieClip=this["kader"+i].sluit;
knop.target=kader;
sluit.doel=kader;
//met knop alle knoppen enabled=false en kader tonen
knop.onRelease=function() {
knoppenAanUit("uit");
this.target._alpha=100;
this["kader"+i].sluit.enabled=true;//<=======?????????
}
//met sluit alle knoppen enabled=true en kader weg
sluit.onRelease=function() {
knoppenAanUit("aan");
this._parent._alpha=0;
}

}


Groeten,
Alex

Jan
%Europe/Berlin %474 %2009, 12:22
binnen de knop.onRelease functie verwijst this naar knop en niet naar _root zoals in het begin van je for loop.
knop.onRelease=function()
{
knoppenAanUit("uit");
this.target._alpha=100;
trace(this);//knop, bestaan er kaders in knop?
trace(this.target.sluit)
this["kader"+i].sluit.enabled=true;//<=======?????????
}

Groeten;
Jan

alexa
%Europe/Berlin %485 %2009, 12:38
Dag Jan,

Er bestaan geen kaders in knop. Wanneer ik knop1 heb ingedrukt, verschijnt inderdaad kader1. Geen probleem.
Jouw toegevoegde trace levert op:
_level0.knop1
_level0.kader1.sluit
Ik weet niet zo goed, wat ik met die laatste trace aanmoet. Wat kan ik er mee?

Groet,
Alex

Jan
%Europe/Berlin %495 %2009, 12:54
this.target.sluit.enabled=true;

Jan
%Europe/Berlin %497 %2009, 12:56
Ik weet niet zo goed, wat ik met die laatste trace aanmoet. Wat kan ik er mee?
this.target.sluit.enabled=true
8~

Of stuur die als (tweede)parameter mee naar je functie knoppenAanUit en gebruik die daar om na de for loop de juiste weer enabled te maken.

Groeten;
Jan

alexa
%Europe/Berlin %502 %2009, 13:03
Hallo Jan,

juist, dat dacht ik ook, maar het werkt niet en het werkt wel.
Uitleg: ik zoek voortdurend een oplossing voor die sluitvlakjes die, op de stage zichtbaar of onzichtbaar aanwezig zijn, maar die exact boven elkaar staan. Dus: de onzichtbare kader2.sluit staat boven de zichtbare kader1.sluit. En die laatste sluit moet dus als enige enabled=true zijn.
Dat is ie ook, maar ik kan hem niet bereiken: de onzichtbare kader2.sluit, die enabled=false is, dekt hem kennelijk af.

Dus dit script werkt wel, wanneer die kaders en die sluitvlakjes niet op exact dezelfde plaats staan. Het werkt niet wanneer ze dezelfde positie hebben.

Hoe los ik dit slim op?

groet,
Alex

alexa
%Europe/Berlin %522 %2009, 13:32
EDIT: Bedankt Jan, het script werkt goed!. En deze functie onTop (hier beneden) moet ik natuurlijk boven de functie knoppenAanUit("uit") plaatsen ... :#

Ik dacht slim te zijn, door de functie onTop (beschreven hier bij FF) te gebruiken:

knop.onRelease=function() {
knoppenAanUit("uit");
this.target._alpha=100;
this.target.onTop();//<=============???????????
this.target.sluit.enabled=true;
}


Maar ook dit biedt geen soulaas. Wat te doen?

Groet,

Alex