Hej Tor! - Som jeg ser det er der to mulige løsninger på dit problem.
Løsning1 - "Continueus feedback button" (tror jeg nok man kalder det..):
En knap der i virkeligheden er to knapper der ligger i et movieclip i to
frames lige efter hinanden. Movieclippet loop'er imellem de to knapper, der
derfor hele tiden "gør det de skal" - altså at fornemme rollover'eren, og
dermed flyttes dit kort kontinuerligt.
Løsning2 - Kald et Action-clip:
I stedet for at kalde funktionen der flytter kortet direkte fra selve
knappen, så kald et movieclip, der derefter kalder funktionen der flytter
kortet. Altså...
Lav et nyt movieclip(mc) og kald det f.eks. "moveit"
Dette mc skal have 3 frames med følgende actions:
Frame1: stop
Frame2: her placere du den stump actionschript der rent faktiskt flytter
kortet
Frame3: gotoAndPlay(2)
Næste trin er at placere et instance af "moveit"-mc'et på scenen, og at give
det et instancenavn - lad os bare kalde det for "moveit" igen.
Alt hvad du nu behøver at gøre for at flytte på kortet, er at starte og
stoppe "moveit"-mc'et med en knap med følgende actions:
on (rollOver) {
tellTarget ("moveit") {
gotoAndPlay (2);
}
}
on (rollOut) {
tellTarget ("moveit") {
gotoAndStop (1);
}
}
Formodenligt har du i din nuværende løsning lavet 4 knapper, en for hver af
de 4 retninger som kortet kan bevære sig i. Det ville derfor være
umiddelbart nærliggende at lave 4 udgaver af "moveit" - én med en "flyt
kortet op"-action, én med ned osv...
Et kneb kunne være kun at lave én udgave af "moveit", men med et sæt actions
der er i stand til at flytte kortet i alle 4 retninger afhængigt af hvilken
knap der rulles over.
Forestil dig at vi tilføjer nedenstående til de fire knapper der kalder
"moveit"
KNAP1:
on (rollOver) {
moveit.retning = "op";
tellTarget ("moveit") {
gotoAndPlay (2);
}
}
on (rollOut) {
moveit.retning = "";
tellTarget ("moveit") {
gotoAndStop (1);
}
}
--------------
KNAP2:
on (rollOver) {
moveit.retning = "ned";
tellTarget ("moveit") {
gotoAndPlay (2);
}
}
on (rollOut) {
moveit.retning = "";
tellTarget ("moveit") {
gotoAndStop (1);
}
}
--------------
KNAP3:
on (rollOver) {
moveit.retning = "hojre";
tellTarget ("moveit") {
gotoAndPlay (2);
}
}
on (rollOut) {
moveit.retning = "";
tellTarget ("moveit") {
gotoAndStop (1);
}
}
--------------
KNAP4:
on (rollOver) {
moveit.retning = "venstre";
tellTarget ("moveit") {
gotoAndPlay (2);
}
}
on (rollOut) {
moveit.retning = "";
tellTarget ("moveit") {
gotoAndStop (1);
}
}
Det vi gør at at sætte en variabel inde i "moveit" der hedder "retning".
"retning"'s værdi kan endten være op, ned, hojre eller venstre. At hvad vi
behøver at gøre nu er at få "moveit" til at checke hvorhen kortet skal
bevæges - Det gør vi med om omgang If'er i frame 2 af "moveit":
if (retning eq "op") {
her placeres actionscript der flytter kortet opad
}
if (retning eq "ned") {
her placeres actionscript der flytter kortet nedad
}
if (retning eq "hojre") {
her placeres actionscript der flytter kortet mod venstre
}
if (retning eq "venstre") {
her placeres actionscript der flytter kortet mod hojre
}
Der er masser af variationer over denne teknik, og det kan helt sikkert
gøres endnu smartere (specielt if-statements'ne kan gøres bedre), men det
her er let forståeligt, let at modificere og yderst genbrugeligt.
/peo
peo@bandage.dk
www.bandage.dk
> Jeg er ved at lave et landkort i flash, man skal kunne scrolle hen over
det,
> ved at køre musen ud til en af siderne (som i red alert, starcraft
o.s.v.).
> Jeg har lavet et par usynlige knapper i siderne, men når man holder musen
> over dem, registrerer den jo kun rolloveren en gang, og mit kort rykker
kun
> et lille ryk og stopper. Hvis man bruger f.eks piletasterne til at
navigere
> med, er det ikke noget problem.
>
> Hvordan får man flash til at blive ved med at kigge efter en rollover på
en
> knap?