| |||||||
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) |
| access denied Registriert seit: Jan 2006 Ort: Düsseldorf
Beiträge: 86
|
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 |
| | |
| | #2 (permalink) | |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.321
| Zitat:
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();
};
__________________ 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) | |
| | |
| | #3 (permalink) |
| Euer Nuser 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...
__________________ Die Krinimalpolizei gibt bekannt: |
| | |
| | #4 (permalink) |
| access denied 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? |
| | |
| | #5 (permalink) |
| Euer Nuser Registriert seit: Apr 2004 Ort: Sand-City
Beiträge: 3.483
| 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
__________________ Die Krinimalpolizei gibt bekannt: |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |