Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 05-12-2003, 13:04   #1 (permalink)
Neuer User
 
Registriert seit: Jul 2001
Beiträge: 51
mc mit Pfeiltasten steuern

Ok, ich steh auf dem Schlauch. Ich steuere einen Mc mit den Pfeiltasten – klappt auch nach links, recht, unten, oben.... aber wie schaffe ich es dass wenn ich auch durch dürcken von zwei Tasten (z.b. Oben und Rechts) den MC schräg nach rechtsoben verschiebe??

Hier mein bisheriges Skript:


PHP-Code:
speed 10;
//Wo soll "fly" stoppen?
sl 20;
sr 580;
so 20;
su 340;
fly.onEnterFrame = function() {
    
with (fly) {
        if (
Key.isDown(Key.RIGHT)) {
            
_x += speed;
            if (
_x>=sr) {
                
_x sr;
            }
        } else if (
Key.isDown(Key.LEFT)) {
            
_x -= speed;
            if (
_x<sl) {
                
_x sl;
            }
        } else if (
Key.isDown(Key.UP)) {
            
_y -= speed;
            if (
_y<so) {
                
_y so;
            }
        } else if (
Key.isDown(Key.DOWN)) {
            
_y += speed;
            if (
_y>su) {
                
_y su;
            }
        }
    }
}; 
TooV ist offline   Mit Zitat antworten
Alt 05-12-2003, 13:33   #2 (permalink)
.--. .. ..- ...
 
Benutzerbild von pius
 
Registriert seit: Jul 2002
Ort: munich
Beiträge: 1.345
ungetestet

ActionScript:
  1. if (Key.isDown(Key.RIGHT) && Key.isDown(Key.LEFT))

auf jeden fall vorher abfragen ...
__________________
one out of many
pius ist offline   Mit Zitat antworten
Alt 05-12-2003, 13:39   #3 (permalink)
Neuer User
 
Registriert seit: Jul 2001
Beiträge: 51
danke für die Antwort, aber was meinst Du mit vorher abfragen??
TooV ist offline   Mit Zitat antworten
Alt 05-12-2003, 13:42   #4 (permalink)
HAY
Neuer User
 
Benutzerbild von HAY
 
Registriert seit: Aug 2002
Ort: Faust-Stadt
Beiträge: 2.577
hi
einfach die else wegmachen
ActionScript:
  1. fly.onEnterFrame = function() {
  2.      with (fly) {
  3.         if (Key.isDown(Key.RIGHT)) {
  4.             _x += speed;
  5.             if (_x>=sr) {
  6.                 _x = sr;
  7.             }}
  8.          if (Key.isDown(Key.LEFT)) {
  9.             _x -= speed;
  10.             if (_x<sl) {
  11.                 _x = sl;
  12.             }}
  13.          if (Key.isDown(Key.UP)) {
  14.             _y -= speed;
  15.             if (_y<so) {
  16.                 _y = so;
  17.             }}
  18.          if (Key.isDown(Key.DOWN)) {
  19.             _y += speed;
  20.             if (_y>su) {
  21.                 _y = su;
  22.             }
  23.         }
  24.     }
  25. };
__________________
gruß Harry
HAY ist offline   Mit Zitat antworten
Alt 05-12-2003, 13:43   #5 (permalink)
anyway
Gast
 
Beiträge: n/a
Oder das hier mal versuchen...Das Script greift auf jeden Fall auch mehrere Tasten sicher ab und kann leicht auf andere Tastenkombis umgemünzt werden...

ActionScript:
  1. //
  2. // STEUERUNG DURCH RICHTUNGSTASTEN
  3. //
  4. // SCRIPT GEHÖRT AUF DAS ERSTE SCHLÜSSELBILD
  5. // DER HAUPTZEITLEISTE
  6. //
  7. move = {};
  8. //vor
  9. move._38 = function() {
  10.         trace("vor");
  11. };
  12. //zurück
  13. move._40 = function() {
  14.         trace("zurück");
  15. };
  16. //links
  17. move._37 = function() {
  18.         trace("links");
  19. };
  20. //rechts
  21. move._39 = function() {
  22.         trace("rechts");
  23. };
  24. kd = {};
  25. // welcher Movieclip soll die Steuerung übernehmen?
  26. kd.mc = this;
  27. // ...dieser - könnte aber auch jeder andere sein.
  28. kd.mc.fxs = {};
  29. kd.onKeyDown = function() {
  30.         var ks = "_"+Key.getCode();
  31.         if (!this.mc.fxs[ks]) {
  32.                 this.mc.fxs.count++;
  33.                 this.mc.fxs[ks] = move[ks];
  34.                 this.updateControl();
  35.         }
  36. };
  37. kd.onKeyUp = function() {
  38.         var ks = "_"+Key.getCode();
  39.         delete this.mc.fxs[ks];
  40.         this.mc.fxs.count--;
  41.         if (this.mc.fxs.count == 0) {
  42.                 trace("onEnterFrame gelöscht! - keine vordefinierte Taste betätigt")
  43.                 delete this.mc.onEnterFrame;
  44.         }
  45. };
  46. kd.updateControl = function() {
  47.         if (!this.mc.onEnterFrame) {
  48.                 this.mc.onEnterFrame = function() {
  49.                         for (var n in this.fxs) {
  50.                                 this.fxs[n]();
  51.                         }
  52.                 };
  53.         }
  54. };
  55. Key.addListener(kd);


anyway.
  Mit Zitat antworten
Alt 05-12-2003, 13:47   #6 (permalink)
.--. .. ..- ...
 
Benutzerbild von pius
 
Registriert seit: Jul 2002
Ort: munich
Beiträge: 1.345
... bei 'else if' wird nur EINE option ausgeführt ....
__________________
one out of many
pius ist offline   Mit Zitat antworten
Alt 05-12-2003, 13:47   #7 (permalink)
Neuer User
 
Registriert seit: Jul 2001
Beiträge: 51
Vielen Dank, jetzt klappt es )))))
TooV ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 22:12 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele