10. juni 2006 - 12:28Der er
21 kommentarer og 1 løsning
Køre ind - Køre ud
Ja jeg ved ikke lige hvordan jeg skulle skrive en fængende overskrift.
Jeg er flash novice - dog kan jeg godt finde ud af at lave små film og få dem til at reagere på tryk på f.eks. knapper.
MEN...
Der er en ting - som sikkert er rigtig simpelt - som jeg ikke forstår en bønne af.
Beskrivelse:
jeg har en flash side som er blank - dog er der to knapper. Knap 1 hedder "blå bold" og Knap 2 hedder "rød bold".
Når man trykker på BLÅ BOLD skal en blå bold komme ned fra oven og lande på min stage. Det er der ingen ben i.
MEN...
Når jeg så trykker på RØD BOLD - og nu kommer mit spørgsmål - så vil jeg gerne have at den BLÅ BOLD kører ud af stagen i samme rute som den kom fra, hvorefter den RØDE BOLD så kommer dumpende ned.
Således skal det også ske med den RØDE BOLD når man igen trykker på knappen med teksten BLÅ BOLD. Ud med den røde, ind med den blå. Og så videre, og så videre, og så videre.
I mit forsimplede sprog så skal animationen med den pågældende bold på stagen altså bare "spoles tilbage" igen.. for at gøre plads til næste bold.
Er der nogen der kan hjælpe?
Husk, at jeg ikke er specielt skrap til dette, så det må gerne forklares godt og grundigt.
Det kan sagtens lade sig gøre - så skal du bare flytte lidt rundt på actionscriptet, således at koden til at fade ind ligger som den går nu på knappens on(release) handler, og koden til at fade ind ligger i sidste frame af mc'ets fade ind - dvs. hvis du clicker på knappen til vis blå bold, så skal koden på knappen afspille rød bold ud og koden i rød bold ud's sidste frame skal være afspil blå bold ind - håber det gav mening.
Flash'en skal i sidste ende være en komplet hjemmeside - altså skal der være 6-7 menupunkter med hver sine 3-4 underpunkter.
Bliver det så noget forfærdeligt rod at lave det på denne måde??
Kan man lave et script der gør følgende:
Når man trykker på en given knap, så fader det aktive mc ud (uanset hvilket af de 25 mc det er) og det valgte fader ind når, det andet er færdigt med at fade ud.
Jeps - så skal du nok lege lidt med variabler. Hvis du nu trykker på knap nummer 4 så fader du mc4 ind med koden: on(release){ mc4.gotoAndPlay("ind"); }
Hvis du så trykker på knap nummer 7, så skal den jo have samme kode til af fade mc7 ind, men samtidig skal vi jo så have mc4 til at fade ud - så du tilføjer en variabel (vi kunne jo kalde den loaded) til din kode for knapperne, ex.vis: loaded=4; - og når man så trykker på en anden knap bruger du variablen til at fortælle hvilket mc der skal fades ud - altså noget i stil med (og gemmer det i en ny variabel (fade)):
fade = "mc"+loaded;
dvs. koden ser nu sådan ud for knap 7: on(release){ loaded=7; fade.gotoAndPlay("ud"); mc7.gotoAndPlay("ind"); }
...det er ikke den helt rigtige syntaks, men har ikke lige tid til at finde den korrekte lige nu - prøv dig evt. frem eller se om der er andre der byder ind - problemet er omkring fade = "mc"+loaded; og fade.gotoAndPlay("ud"); - det kan ikke helt lade sig gøre i den form - men kan ikke lige på stående fod huske den korrekte form.
Du har glemt at navngive dit andet mc "pige" - altså ikke da du lavede det til et mc, men nede i properties, marker mc'et og skriv "pige" i textboksen lige under den dropdownbox hvor der står Movie Clip
Ja, i princippet kan du bare blive ved med at tilføje else if sætninger derudaf - men hvis du har 25 mc bliver det jo meet langt, det var derfor jeg snakkede om at forsøge at kreere den ekstra variabel "fade" med nummeret fra knappen - du kunne evt. oprette et lille ekstra spørgsmål og se om der er nogen der lige kan actionscripte den.
For ikke at gøre din fil alt for stor, kunne du også overveje at lave dine 25 mc som selvstændige filer og så loade dem ind i et tomt mc (en container) i din main fil.
...og så fremdeles - dvs. du skal først kontrollere om der er vist noget mc i forvejen (hvis click == 0 så er der ikke loadet noget) hvis der ikke er så loader du dit mc og sætter din variabel til nummeret på den knap der clickes på. Hvis der er vist et mc i forvejen så er click ikke lig nul og den går videre i koden og tester på alle else if til den finder en der har den rigtige værdi. Hvis der er trykket på den knap der svare til den værdi click har i forvejen skal der ikke ske noget (mc'et vises jo allerede) derfor //do nothing - hvis der vises et andet mc i forvejen skal det først unloades .gotoAndPlay("hide") hvorefter det nye mc loades .gotoAndPlay("show") og din variabel sættes lig med det mc dert nu vises ( ex.vis : click=3)
Hehe - glad for at kunne hjælpe, håber du får det til at virke!
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.