Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 14-01-2004, 15:30   #1 (permalink)
Neuer User
 
Registriert seit: Nov 2001
Beiträge: 40
Objekt bewegen

Hallo Zusammen,

mir raucht gerade der Kopf und fin keine Lösung. Ich möchte einen MC hin und her per AS bewegen, das klappt auch etwas aber leider nur halb. So sieht es momentan aus:

ActionScript:
  1. if (this._x > 400) {
  2.     this._x -= speed;
  3. } else {
  4.     this._x += speed;   
  5. }

Die if Bedingung wird ausgeführt, also er geht von der Position 600 auf 400. Ich hab es schon mit 2 if Bedingungen und mit else if probiert, aber nix hat geklappt. Wie funktioniert das aber wieder zurück? Sprich von seiner 400er Position auf die 600er? Immer wierder hin und her...

Vielen Dank im Voraus...
Gruss Stefan

Geändert von cosmic (14-01-2004 um 15:32 Uhr)
cosmic ist offline   Mit Zitat antworten
Alt 14-01-2004, 15:40   #2 (permalink)
-.. --- -- .. -. .. -.-
 
Benutzerbild von ipxlan
 
Registriert seit: May 2002
Ort: Nürnberg
Beiträge: 145
das ist nicht schön aber vielleicht hilfts beim denken



if (this._x >= 600) {
speed=-10;
} else if (this._x <= 400){
speed=10;
}
this._x += speed;
__________________
Gruß Dominik (IPXLAN)

Ganz neu, ganz frisch www.superskank.com
---------------------------------------------
shock-box
email: ipxlan<at>gmx.de
site: www.shock-box.de | www.shock-box.net
---------------------------------------------
ipxlan ist offline   Mit Zitat antworten
Alt 14-01-2004, 15:55   #3 (permalink)
Neuer User
 
Registriert seit: Nov 2001
Beiträge: 40
oh mann stand ich aufm schlauch, vielen dank!
aber was meinst du mit "nicht" schön?

Stefan
cosmic ist offline   Mit Zitat antworten
Alt 14-01-2004, 16:13   #4 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
Schön wäre sowas

ActionScript:
  1. var speed = 50;
  2. var maxX = 600;
  3. var minX = 400;
  4. this.mc._x = 400;
  5. this.mc.onEnterFrame = function() {
  6.         if (this._x>=maxX || this._x<=minX) {
  7.         speed = -speed;
  8.     }
  9.     this._x += speed;
  10.     if (this._x<=minX) {
  11.         this._x = minX;
  12.     }
  13. };
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"
RustyCake ist offline   Mit Zitat antworten
Alt 14-01-2004, 16:25   #5 (permalink)
Achim Math.PI
 
Benutzerbild von bloba
 
Registriert seit: Jul 2001
Ort: cool Colonia
Beiträge: 11.642
so und des noch mal als prototype

Hi5**Rusty
PHP-Code:
MovieClip.prototype.pendel = function(speedmaxXminX) {
    
this.onEnterFrame = function() {
        
trace(this._x);
        if (
this._x>=maxX || this._x<=minX) {
            
speed = -speed;
        }
        
this._x += speed;
        if (
this._x<=minX) {
            
this._x minX;
        }
    };
};
mc.pendel(20400200); 
__________________
gruß bloba

2 x onkel² b_d
bloba ist offline   Mit Zitat antworten
Alt 14-01-2004, 16:27   #6 (permalink)
-.. --- -- .. -. .. -.-
 
Benutzerbild von ipxlan
 
Registriert seit: May 2002
Ort: Nürnberg
Beiträge: 145
right


das ist doch überflüssig:

if (this._x<=minX) {
this._x = minX;
}

wenn du den MC am anfang auf minX setzt


var speed = 5;
var maxX = 600;
var minX = 400;
this.mc._x = minX;
this.mc.onEnterFrame = function() {
if (this._x>maxX || this._x<minX) {
speed = -speed;
}
this._x += speed;

};
__________________
Gruß Dominik (IPXLAN)

Ganz neu, ganz frisch www.superskank.com
---------------------------------------------
shock-box
email: ipxlan<at>gmx.de
site: www.shock-box.de | www.shock-box.net
---------------------------------------------
ipxlan ist offline   Mit Zitat antworten
Alt 14-01-2004, 16:30   #7 (permalink)
-.. --- -- .. -. .. -.-
 
Benutzerbild von ipxlan
 
Registriert seit: May 2002
Ort: Nürnberg
Beiträge: 145
irgendwie brauch ich immer zu lang



@bloba


MovieClip.prototype.pendel = function(speed, maxX, minX) {
this._x= minX;
this.onEnterFrame = function() {
trace(this._x);
if (this._x>maxX || this._x<minX) {
speed = -speed;
}
this._x += speed;

};
};
mc.pendel(20, 400, 200);
__________________
Gruß Dominik (IPXLAN)

Ganz neu, ganz frisch www.superskank.com
---------------------------------------------
shock-box
email: ipxlan<at>gmx.de
site: www.shock-box.de | www.shock-box.net
---------------------------------------------
ipxlan ist offline   Mit Zitat antworten
Alt 14-01-2004, 16:39   #8 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
Hi5**bloba

@ ipxlan
testest Du eigentlich bevor Du Postest
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"
RustyCake ist offline   Mit Zitat antworten
Alt 14-01-2004, 16:47   #9 (permalink)
-.. --- -- .. -. .. -.-
 
Benutzerbild von ipxlan
 
Registriert seit: May 2002
Ort: Nürnberg
Beiträge: 145
warum ???

geht doch..
__________________
Gruß Dominik (IPXLAN)

Ganz neu, ganz frisch www.superskank.com
---------------------------------------------
shock-box
email: ipxlan<at>gmx.de
site: www.shock-box.de | www.shock-box.net
---------------------------------------------
ipxlan ist offline   Mit Zitat antworten
Alt 14-01-2004, 17:07   #10 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
OK! war mein fehler
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"
RustyCake ist offline   Mit Zitat antworten
Alt 14-01-2004, 18:33   #11 (permalink)
Neuer User
 
Registriert seit: Nov 2001
Beiträge: 40
hmm ist meine schreibweise nun falsch oder einfach nur schlechter stil?

1. Schlüßelbild:

ActionScript:
  1. //Geschwindigkeit
  2. speed = 8;
  3. //Entfernung zum eigenen Shiff
  4. closer = 320;

2. Schlüßelbild:

ActionScript:
  1. //Agent bewegen und begrenzen auf_x
  2. if (this._x >= 600) {
  3.     speed=-8;
  4. } else if (this._x <= closer){
  5.     speed=8;
  6.     closer = closer-30;
  7. }
  8. this._x += speed;
  9.  
  10. //Agent bewegen und begrenzen auf_y
  11. if (this._y >= 250) {
  12.     amplitute =- (Math.sin(_x/20)*5);
  13. } else if (this._y < 10){
  14.     amplitute = (Math.sin(_x/20)*5);
  15. }
  16. this._y += amplitute;
  17.  
  18. //Kollisionsabfrage mit dem Raumschiff
  19. if (this.hitTest(_root.ObjShip.kollision) && !_root.ObjShip.deleted) {
  20.     _root.ObjShip.gotoAndPlay("Explosion");
  21.     gotoAndPlay("Explosion");
  22. }
  23.  
  24. //Kollisionabfrage mit den 10 möglichen Feuerbällen
  25. for (i=1; i<10; i++) {
  26.     if (this.hitTest(_root["ammo"+i])) {
  27.         treffer+=1;
  28.         count=100-treffer;
  29.         energy(count);
  30.         _root["ammo"+i].removeMovieClip();
  31.     }
  32. }
  33.  
  34. //Energybalken
  35. function energy(count){
  36.     this.balken._xscale = count;   
  37. }
  38.  
  39. //Agent wurde zerstört
  40. if (treffer>=100) {
  41.     gotoAndPlay("Explosion");   
  42.     //addiert die aktuelle Punktzahl + 1000
  43.     _root.score += 1000;
  44. }

3. Schlüßelbild:

ActionScript:
  1. // Springe zum vorhergehenden Bild
  2. gotoAndPlay(_currentframe-1);

Danke für euere Kommentare.
Gruß Stefan

Geändert von cosmic (14-01-2004 um 18:37 Uhr)
cosmic 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 23:01 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele