| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Jul 2010
Beiträge: 9
| Animation mit KEY_DOWN ein mal starten.
hallo, bin ein relativer AS3 neuling und habe folgendes problem: ich habe einen spieler character, der aus 3 frames besteht. auf jedem frame ist eine movieclip mit einer animation - nach links laufen, nach rechts laufen und stehen. ich möchte jetzt, wenn ich nach rechts drücke, dass der spieler sich nach rechts bewegt und auf die "nach rechts lauf" animation hüpft. so weit funktioniert das auch, nur mit dem problem, dass wenn ich auf der taste bleibe, die animation zu ruckeln anfängt. das liegt an der wiederholrate der taste, d.h. jedes mal, wenn flash den tastendruck neu wahrnimmt, ist ein ruckler drin. ich hoffe, mein problem ist verständlich und irgendjemand hat eine lösung dafür. hier mein code: Code: var keys = new Object();
keys[Keyboard.LEFT] = {down:false, dirx:-10};
keys[Keyboard.RIGHT] = {down:false, dirx:10};
stage.addEventListener (KeyboardEvent.KEY_DOWN, downKeys);
stage.addEventListener (KeyboardEvent.KEY_UP, upKeys);
stage.addEventListener (Event.ENTER_FRAME, runGame);
function downKeys (ev:KeyboardEvent) {
if (keys[ev.keyCode] != null) {
keys[ev.keyCode].down = true;
}
if(ev.keyCode == Keyboard.RIGHT){
player.gotoAndStop('run_right');
}
if(ev.keyCode == Keyboard.LEFT){
player.gotoAndStop('run_left');
}
}
function upKeys (ev:KeyboardEvent) {
if (keys[ev.keyCode] != null) {
keys[ev.keyCode].down = false;
}
}
function runGame (ev:Event){
for each (var keyOb in keys) {
if (keyOb.down == true && keyOb.dirx != 0) {
player.x += keyOb.dirx;
}
}
} vielen dank lg, der dodo |
| | |
| | #2 (permalink) |
| Neuer User Registriert seit: Oct 2009 Ort: Bremen
Beiträge: 147
|
Moin, also generell: Wieso benutzt du gotoAndStop() wenn du eine Animation starten willst? Dann wohl doch eher gotoAndPlay()?! ![]() Vorrausgesetzt dir ist egal in welche Richtung gerade animiert wird und du willst also nur wissen ob gerade eine Animation läuft. Da würde ich einen Boolean benutzen. Wenn die Animation fertig ist, wird noch ein Event dispatched und der Boolean wird wieder auf false gesetzt. Danach kann dann jeder Tastendruck wieder registriert werden. Geändert von DerTobi (31-07-2010 um 02:09 Uhr) |
| | |
| | #3 (permalink) |
| Neuer User Registriert seit: Jul 2010
Beiträge: 9
|
hallo, danke, erst mal, aber da hab ich wohl was nicht ganz klar erklärt ![]() also, der player MC ist so aufgebaut, dass es mehrere keyframes gibt, auf denen jeweils ein MC liegt, der eine animation beinhaltet, z.b. einen walkcycle, rumstehen, etc. und ich möchte, dass wenn ich auf die taste nach rechts drücke, der player MC auf die "nach rechts"-animation springt, eben mit gotoAndStop()... das mit einer boolean variable hab ich mir auch schon überlegt. das problem ist nur, wenn ich z.b. die boolean auf true setze und wieder in jedem frame abfrage, ob die true ist, hab ich genau das selbe problem wieder... lg, der dodo |
| | |
| | #4 (permalink) |
| in the boondocks Registriert seit: Feb 2006 Ort: Augsburg
Beiträge: 3.238
|
hi dodo, ich denke du kannst dein problem auf diese art lösen. ich schätze es ist eigentlich selbsterklärend. drum sag ich gar nicht mehr dazu ![]() PHP-Code: sx |
| | |
| | #5 (permalink) |
| Neuer User Registriert seit: Jul 2010
Beiträge: 9
|
shin, danke für den vorschlag, werd ich gleich probieren, sobald ich dazu komm, schaut aber vielversprechend aus... was fehlt (vermute ich mal so) ist Code: if(currentAnimation != nextAnimation){
player.gotoAndStop(currentAnimation);
currentAnimation = nextAnimation;
} der dodo |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Probleme mit KEY_DOWN | meeAgain | ActionScript 3 | 1 | 24-01-2010 20:07 |
| tastenkombination aus zwei KEY_DOWN ? | paulhey | ActionScript 3 | 1 | 18-01-2010 15:43 |
| KeyboardEvent.KEY_DOWN ohne dauerfeuer | VIR²L | ActionScript 3 | 11 | 05-12-2007 19:40 |
| Animation von cd starten | Baccu | Flash MX 2004 | 1 | 04-01-2006 12:54 |
| Animation starten | keizersosze | Flash MX | 5 | 05-10-2005 13:51 |