|
| Problem: Keydown--> "frameloop" starter, m~ Fra : Nik |
Dato : 10-08-01 18:47 |
|
Hej
Jeg er i gang med en flash fil, hvor man skal styre en figur rundt på
skærmen/scenen.
Jeg har lavet det således at figuren styres ved hjælp af piletasteren via
"Key.isDown" scripts der styrer figuren/movie-clippet på x- og y-akserne.
Figuren går f.eks. opad ved hjælp af:
if (Key.isDown(Key.UP)) {
setProperty ("", _y, _y-5);
Samtidig vil jeg gerne have figuren til animeres lidt når han går, f.eks.
bevæge armene. Det skal jo så også ske når brugeren f.eks. trykker på "pil-
op" tasten og jeg havde tænkt mig at lave det således:
if (Key.isDown(Key.UP)) {
setProperty ("", _y, _y-5);
tellTarget ("") {
gotoAndPlay (2);
}
}
Udover at figuren går op ad på scenen, ved tryk på tasten, så går man også
til frame 2 inde i selve movie-clippet/figuren. Og ved frame 2 i movie-
clippet starter så en animation på et par frames, der kører i loop.
Animationen starter da også, men problemet er at den aldrig når længere end
til frame 2, fordi man bliver ved med at holde piletasten nede for at
bevæge figuren. Når man f.eks. holder "pil-op" tasten nede, så opfatter
flash det som om at man trykker rigtig mange gange og den starter så i
frame 2 igen og igen og når ikke de to andre frames i animationen.
Er det muligt at lave det således at animationen bliver gennemført, mens
tasten holdes nede (og figuren styres rundt på scenen)?
En løsning behøver ikke at tage udgangspunkt i "mit" script, jeg vil bare
gerne kunne styre en figur, samtidig med at den animeres.
Mvh.
Nikolaj
| |
cysol (31-08-2001)
| Kommentar Fra : cysol |
Dato : 31-08-01 08:18 |
|
hey nik
hvor henne sidder dit script ?
hvis det sidder på main timeline er det klart at det hopper tilbage til
frame2 når du trykker .. det beder du jo movien om.
smid scriptet ind i dit "animated character" movieclip.
if (Key.isDown(Key.UP)) {
with(this){
_y -= 5;
gotoAndPlay(2);
}
}
udover det er det noget nemmere at styre hvis du bruger navngivne jumps.
if (Key.isDown(Key.UP)) {
with(this){
_y -= 5;
gotoAndPlay("animStart");
}
}
så kan du nemlig flytte rundt på dine frames uden at skulle ind i dit script
hver gang.
mvh
Morten
"Nik" <rum@inorbit.com> wrote in message
news:I6Vc7.3456$MK.170458@news010.worldonline.dk...
> Hej
>
> Jeg er i gang med en flash fil, hvor man skal styre en figur rundt på
> skærmen/scenen.
>
> Jeg har lavet det således at figuren styres ved hjælp af piletasteren via
> "Key.isDown" scripts der styrer figuren/movie-clippet på x- og y-akserne.
> Figuren går f.eks. opad ved hjælp af:
>
> if (Key.isDown(Key.UP)) {
> setProperty ("", _y, _y-5);
>
> Samtidig vil jeg gerne have figuren til animeres lidt når han går, f.eks.
> bevæge armene. Det skal jo så også ske når brugeren f.eks. trykker på
"pil-
> op" tasten og jeg havde tænkt mig at lave det således:
>
> if (Key.isDown(Key.UP)) {
> setProperty ("", _y, _y-5);
> tellTarget ("") {
> gotoAndPlay (2);
> }
> }
>
> Udover at figuren går op ad på scenen, ved tryk på tasten, så går man også
> til frame 2 inde i selve movie-clippet/figuren. Og ved frame 2 i movie-
> clippet starter så en animation på et par frames, der kører i loop.
> Animationen starter da også, men problemet er at den aldrig når længere
end
> til frame 2, fordi man bliver ved med at holde piletasten nede for at
> bevæge figuren. Når man f.eks. holder "pil-op" tasten nede, så opfatter
> flash det som om at man trykker rigtig mange gange og den starter så i
> frame 2 igen og igen og når ikke de to andre frames i animationen.
>
> Er det muligt at lave det således at animationen bliver gennemført, mens
> tasten holdes nede (og figuren styres rundt på scenen)?
>
> En løsning behøver ikke at tage udgangspunkt i "mit" script, jeg vil bare
> gerne kunne styre en figur, samtidig med at den animeres.
>
> Mvh.
> Nikolaj
>
| |
|
|