Haloj!
Jo jag en grej som jag vill göra:
Jag har fyra dörrar/portar med varsin knapp, när man trycker på en knapp/dörr så öppnar sig dörren och bakom ligger det lite text.
Det jag vill är att när man klickat på en dörr och den har öppnats och sen klickar på en annan valfri dörr så vill jag att den öppna dörren först ska stängas innan nästa dörr man tryckt på öppnas, och man ska kunna välja att trycka på vilken dörr man vill i vilken ordning man vill, jag tänkte först bygga detta i scener, (en dörr en scen) men det måste ju finnas nåt annat sätt att göra det på, något bättre? Vad tror ni? Skulle vara skönt och ha hela rasket i ett mc.
Tack så länge!
hana78Medlem sedan aug. 200653 inlägg som jag ser det är varje dörr ett MC och har olika animationer, ett för öppning o ett för stängning...
när du klickar på en dörr så kör du en koll på alla dörrar om de är öppna o i så fall stäng o sen kör du 'öppnings-animationen' på den du klickade.
det är exakt det jag vill ha hälp med, hur berättar jag för dom andra dörrarna att en är öppen och att den måste stängas innan nästa kan öppnas? jag drar mig lite i håret.... :q
Du sparar en referens till den öppnade dörren i en variabel, t.ex openDoor, på föräldratidslinjen.
Gör såhär:
1.) På första (Helst inte någon bildruta med ett stop()-action) bildrutan i dörröppningsanimationen placerar du följande framelabel: "doorOpen"
2.) På första bildrutan av stängningsanimationen placerar du följande framelabel: "doorClose".
3.) På sista bildrutan i stängningsanimationen placerar du följande kod:
_parent.openDoor.gotoAndPlay("doorOpen");
4.) På filmklippets första bildruta placerar du följande kod:
this.onRelease = function()
{
_parent.openDoor.gotoAndPlay("doorClose");
_parent.openDoor = this;
}
/Mirandir
tackar tackar, ska testa detta så fort jag kan, återkommer...
japp, nu har jag provat, och det funkar nästan, jag har ju en knapp till varje dörr som just nu har har följande kod:
on (release) {
gotoAndPlay("doorOpen");
}
jag har för tillfället också lagt in ett stop på frame 1 på animationen för jag vill att dörrarna ska vara stängda innan man klickar på någon av dom, precis som du sa (Mirandir) så är det inte att rekomendera för då kan det bli knas, och det blev det ju. Jag har provat att lägga en frame med en stängd dörr innan den öppnas men det blir konstigt....
Min fråga är hur jag ska göra för att dörrarna ska vara stängda från början, och om jag ska köra någon annan kod på knapparna?
tack så länge.
Plockar upp den här tråden igen eftersom jag aldrig fick riktigt ordning på detta, jag har lagt upp en liten ful skiss på två st. dörrar+.fla-filen ifall någon skulle vilja gå in och peta, jag har verkligen försökt att själv få ordning på detta lilla problem men utan framgång och jag skulle vara väldigt tacksam för hjälp.
Jag har kört koden som mirandir skrev men även fast jag nog fattar vad koden ska göra så kanske jag inte fattat riktigt hur, just nu ligger det ett stop-action på frame1 och när dörren är öppen. Och det skulle man ju helst inte göra.
Och som ni ser på skissen så funkar det sådär, som det är nu måste man dubbelklicka på open-knappen för att dörren ska öppnas??!!? Ja ni ser själva!
skiss
.fla
Jag tror du missförstod mirandir lite. Han menade den första framen utan stop() i.
dvs frame 2 i ditt fall.
Men för att ha bägge dörrarna stängda får du ha en liten kontroll för om det är första gången det trycks på nån av dem.
Gör så här.
På frame 1 i roten:
bothDoorsClosed = true;
I door1_mc:
Skapa först ett tredje lager, på frame 2 i lager 3 skapar du en ny frame som du döper till doorOpen. På frame 11 i lager 3 skapar du ytterligare en frame, den döper du till doorClose.
Sen i frame 1 lägger du följande kod:
stop();
this.onRelease = function()
{
_parent.openDoor.gotoAndPlay("doorClose");
_parent.openDoor = this;
[red][B]if(_root.bothDoorsClosed == true){ //Detta är kontrollen för om det är första knapptryckningen
_root.bothDoorsClosed = false;
_parent.openDoor.gotoAndPlay("doorOpen");
}[/B][/red]
}
och i sista framen har du kvar:
_parent.openDoor.gotoAndPlay("doorOpen");
Klart som korvspad. Eller hur? :)