Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 21-07-2008, 21:27   #1 (permalink)
access denied
 
Benutzerbild von Gurth
 
Registriert seit: Jan 2006
Ort: Düsseldorf
Beiträge: 86
Angry Bewegung ohne Keyframes/Tweens?

Hallo zusammen,

ich habe eine AS-Frage, die mir hoffentlich jemand beantworten kann, und die wahrscheinlich viel billiger ist, als ich denke. Ich machs ausführlich.

Erstmal: folgendes Setup auf der Bühne:

1 button
1 würfelförmiger MC, kreativerweise "box" genannt.


Der button hat folgendes script:

on(Release) {
moveBox();
}

Auf _root liegt folgendes script:

function moveBox() {
...hier steht noch nix...
}

Sprich button ruft Funktion moveBox() auf, nix besonderes.
Was ich nun möchte, ist beim onRelease innerhalb von moveBox() die box ein festgelegtes Stück weit zu bewegen, z.B. in 10px Schritten, und das ganze sagen wir 10 mal. Was ich NICHT möchte, ist ein Tweening verwenden, oder wilde if-Schachtelungen konstruieren, sowas habe ich nämlich schon versucht:

_root:

dir = -10;
function moveBox(){
_root.onEnterFrame = function() {
if(i<=10) {
_root.box._x += dir;
i++;
}
}
i=0;
}



Button:

on(Release){
moveBox();
_root.dir *= (-1);
}



Das kommt mir aber nicht sonderlich smooth vor, und wenn ich zum Beispiel noch einen Bremseffekt einbaue, oder das ganze rückwärts laufen lassen will, kommt totales chaos dabei raus oO


Lange Rede, kurze Frage:

Was wäre die simpelste/flexibelste/am besten erweiterbare Methode (ohne Tween), diese box zu bewegen? Klick-10x10pixel nach rechts, wieder klick - wieder 10x10pixel nach rechts etc. ...?

Oder allgemein gesagt: wie kann man eine onEnterFrame-Funktion möglichst easy in ihrer Wiederholungszahl begrenzen??


Danke schonmal!
Gurth
Gurth ist offline   Mit Zitat antworten
Alt 22-07-2008, 00:03   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.321
Zitat:
Zitat von Gurth Beitrag anzeigen
wie kann man eine onEnterFrame-Funktion möglichst easy in ihrer Wiederholungszahl begrenzen??
viel anderster, als du das aufgeschrieben hast geht es nicht.
nur ein paar formale dinge:
Code:
box.dir = -10;
box.i = 0;
box.moveBox = function() {
  this.i = 10;
  this.dir = -this.dir;
  this.onEnterFrame = function() {
    this._x += this.dir;
    if (!--this.i) delete this.onEnterFrame;
  };
};
btn.onRelease = function() {
  if (!box.i) box.moveBox();
};
und bei insgesamt 10 stepps kannst du beschleunigung und abbremsen vergessen. viel zu wenig, als dass man da etwas erkennen könnte.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (22-07-2008 um 00:05 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 22-07-2008, 00:25   #3 (permalink)
Euer Nuser
 
Benutzerbild von ~pyropete~
 
Registriert seit: Apr 2004
Ort: Sand-City
Beiträge: 3.483
Mal so aus Interesse: wieso _keine_ Tweens/Tweenklasse?
Immerhin nimmt einem die Klasse so alles ab, was man normalerweise an
Easing _per Hand_ und onEnterFrame dazuscripten müsste ...
von der Bewegung an sich mal abgesehen...
~pyropete~ ist offline   Mit Zitat antworten
Alt 22-07-2008, 15:14   #4 (permalink)
access denied
 
Benutzerbild von Gurth
 
Registriert seit: Jan 2006
Ort: Düsseldorf
Beiträge: 86
Danke für eure Antworten, konnte den Code noch nicht weiter testen, weil ich auf der Arbeit zu viel zu tun habe im Moment!

Wieso keine Tweens? Weil die Bewegung auch rückwärts laufen soll und variable Distanz haben soll etc. ohne dass ich mich zu tode tweene, und weil ich einfach mal was anderes machen wollte

Was ist denn eine Tweenklasse...? Habe ich noch nie gehört! Kann das was?
Gurth ist offline   Mit Zitat antworten
Alt 22-07-2008, 15:28   #5 (permalink)
Euer Nuser
 
Benutzerbild von ~pyropete~
 
Registriert seit: Apr 2004
Ort: Sand-City
Beiträge: 3.483
Zitat:
Zitat von Gurth Beitrag anzeigen
Was ist denn eine Tweenklasse...? Habe ich noch nie gehört! Kann das was?
Kann das was!

Pointer -> mal irgendwo auf die Bühne klicken
Mousemover -> Maus auf der Bühne bewegen

Button -> läuft vorwärts/rückwärts bei RollOver/RollOut
Angehängte Dateien
Dateityp: rar tweenklasse.rar (12,5 KB, 14x aufgerufen)
~pyropete~ ist offline   Mit Zitat antworten
Alt 22-07-2008, 20:09   #6 (permalink)
access denied
 
Benutzerbild von Gurth
 
Registriert seit: Jan 2006
Ort: Düsseldorf
Beiträge: 86
Hast Recht, Tween und easing Klassen sind geil Ich glaube das istn guter Ansatz für das was ich vorhabe!

Großes Dankeschön!
Melde mich wieder wenns weitergeht...
Gruß, Gurth
Gurth 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 20:15 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele