Sitat av Play4Fun
noen som vet hvordan jeg kan lage det i flash?
Noe sier meg at du ikke har brukt Flash før. Foreslår at du først leser hvordan det fungerer, også kan du prøve deg. Om jeg skulle lage det ville jeg prøvd noe à la dette (jeg snakker Flash 8, ikke CS3):
Lag et movieclip som inneholder hele menylinjen, altså alle knappene. Hver knapp trenger to frames, en for "up" (vanlig visning) og en for "over" (når knappen pekes på). For å få til glatte overganger trenger du en motion tween på "over". Jeg tror det skal la seg gjøre å sette inn et movieclip på denne framen, også lage animasjonen inni der. Animasjonen må gå fra vanlig visning ("up") til den er helt uthevet, også må den stoppe der. Det gjør du ved å skrive actionscriptet "stop();" på den siste framen i movieclipet. I denne animasjonen kan du også legge inn gradienten bak knappen hvis det er ønskelig. Da bør du ha en knapp som uthever seg smooth når du peker på den. Dupliser den slik at du får en hel menyrad (husk at hver knapp må være et unikt symbol). Så kan du eventuelt lage enda en menyrad (det vil gjøre ting litt mer komplisert, riktignok).
Så kommer den delen som krever litt mer kompetanse. Et actionscript som sørger for å flytte menyraden ut av fokus når du har trykket på noe. Dette kan gjøres på mange måter, men det jeg tror er lettest er å sette en variabel til true når du har trykket på en knapp. Eventen som trigges når du trykker på en knapp heter "release" (når du slipper knappen, nærmere bestemt).
Kode
_root.knapp_1.onRelease = function() {
// Skjul menyen
skjul_meny = true;
// Funksjon for å vise det tekstvinduet eller whatever
vis_tekstvindu();
};
Et eksempel på bruk av onRelease (med forbehold mot kodefeil). Funksjonen nederst er tiltenkt å vise tekstfeltet eller noe sånt når knappen trykkes. Videre trenger du en kode som sjekker skjul_meny-variabelen og skjuler menyen hvis den er lik true. Det kan du for eksempel sette inn i onEnterFrame:
Kode
_root.onEnterFrame = function() {
if ( skjul_meny == true ) {
// Gjør menylinjen mindre og gjennomsiktig (gradvis)
_root.menylinje._xscale--;
_root.menylinje._yscale--;
_root.menylinja._alpha--;
}
// Stopp prosessen når menylinjen er 50% gjennomsiktig
if ( _root.menylinje._alpha <= 50 ) {
skjul_meny = false;
}
};
Om jeg ikke har skrevet riktig her, så er i alle fall tanken at menyen blir gradvis mindre og mer gjennomsiktig til et visst punkt. Du trenger en tilsvarende funksjon for å gjøre det motsatte, men det bør ikke være noe problem. I tillegg trenger du den tidligere nevnte funksjonen vis_tekstvindu();, men det bør heller ikke være en stor utfordring.
Dette er en veldig grov og merkelig måte å gjøre det på, men siden du tydeligvis ikke kjenner Flash så godt så kan det være greit å starte slik. For å forstå noe som helst av det over bør du google hvordan funksjoner og sånt funker i Flash, samt dette med symboler, movieclips, frames og slike ting. Du kan også søke opp de kodene jeg har brukt, slik som _xscale og _alpha.
Actionscript er forøvrig skremmende likt Javascript, kompetanse i sistnevnte vil jeg anse som en stor fordel.
Frågor?