Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 17-06-2005, 15:59   #1 (permalink)
Neuer User
 
Registriert seit: Jun 2005
Beiträge: 11
dynamische Bewegung

Hi zusammen.

Hab da ein kleines Problem.
Ich habe einen Mc der unter einer Maske liegt und in den mittels loadMovie dynamisch verschiedene Bilder geladen werden. Es sind immer 9 Bilder sichtbar (3x3-block). Da ich jedoch nie genau weiss wieviele Bilder sich einmal in dem Mc befinden muss sich der Mc bei einem klick auf "vor" immer um 250px -x bewegen. sprich (-250, -500, -750) diesen wert brauche ich zur kontrolle ob die Buttons vor bzw zurück überhaupt noch gehen dürfen oder ob kein Block mehr folgt, bzw der erste gerade sichtbar ist.

Die Geschwindigkeit sollte jedoch nicht statisch sein. Das hab ich und das funktioniert auch. Die Geschwindigkeit sollte langsam anfangen den mc zu bewegen und dann schneller werden und nach einer verschiebung von -250 oder +250 (für zurück) stoppen.

Mein script ohne dynamisierung:
ActionScript:
  1. onClipEvent(load){
  2.     bew = 25;
  3.     _root.ber_bew = 0;
  4.     _root.blockbew = 0;
  5. }
  6.  
  7.  
  8. onClipEvent(enterFrame){
  9.     if(_root.vor == true){ //wenn Button vor gedrückt
  10.         if(_root.ber_bew<(_root.blockbew*250)){ //überprüfung ob überhaupt noch ein Block folgt
  11.             this._x -= bew; // verschiebung
  12.             _root.ber_bew += bew;
  13.             }
  14.     }else if(_root.zurueck == true){
  15.     if(_root.ber_bew>(_root.blockbew*250) && this._x < -31){
  16.         this._x += bew;
  17.         _root.ber_bew -= bew;
  18.     }
  19.     }
  20. }

auf dem zurück-button liegt:

ActionScript:
  1. on(release){
  2.     if( _root.blockbew > 0){
  3.     _root.vor = false;
  4.     _root.zurueck = true;
  5.     _root.blockbew -= 1;
  6.     }
  7. }

Ich hab auch schon verschiedene Dinge versucht mit dynamischem speed. die beschleunigung habe ich auch ohne probleme hinbekommen nur leider hat die Position meines MC´s nacher nicht mehr gestimmt, da immer rundungsfehler auftraten.
hat jemand ne idee?

hier noch mein anderer Teil. Hier funktioniert die beschleunigung:
ActionScript:
  1. onClipEvent(load){
  2.     bew = 10;
  3.     ber_bew = 0;
  4.     _root.blockbew = 0;
  5.     speed = 2;
  6. }
  7. onClipEvent(enterFrame){
  8.     if(_root.vor == true){
  9.         if(ber_bew<(_root.blockbew*250)){
  10.             strecke = (bew/speed);
  11.             this._x -= strecke;
  12.             bew += strecke;
  13.             ber_bew = strecke;
  14.         }
  15.     }else if(_root.zurueck == true){
  16.     if(ber_bew>(_root.blockbew*250) && this._x < -31){
  17.             strecke = (bew/speed);
  18.             this._x += strecke;
  19.             bew -= strecke;
  20.             ber_bew = strecke;
  21.         }
  22.     }
  23. }

Das funktioniert wie gesagt mit der Beschleunigung und mein mc bleibt auch stehen. allerdings leider aber an der falschen stelle.
ich komm nicht dahinter. hab auch schon versucht zu runden usw. bringt alles nichts.
Im prinzip brauch ich zwei buttons welche einen MC beschleunigt in + oder - richtung der x-Achse bewegen und die grenze der bewegung jeweils durch anzahl der Blöcke * 250 gebildet wird.

Hoffe ihr habt ne idee.

greetz
flashfreak0711 ist offline   Mit Zitat antworten
Alt 17-06-2005, 16:56   #2 (permalink)
Custom Title
 
Registriert seit: Aug 2001
Beiträge: 467
Schau Dir mal die mx Tween Klasse an.
LINK - Tutorial

Da gibts Du einfach die gewünschte Position und die BeschleunigungsEtcArt an und die Zeit in der sie ablaufen soll.
__________________
---::::: AVisioN :::::---
AVisioN ist offline   Mit Zitat antworten
Alt 17-06-2005, 17:27   #3 (permalink)
Neuer User
 
Registriert seit: Jun 2005
Beiträge: 11
hi,

danke für den Tip. Wäre ja sicher ne super Sache und bestimmt dann auch einfach zu handeln würde das bei mir gehn.
Ich hab mal ganz schnell das nachgebaut was dort beschrieben ist.
Mc ball_tween auf bühne und button my_btn, ins erste keyframe dann das:

ActionScript:
  1. this.my_btn.onRelease = function() {
  2.         tweenBall(mx.transitions.easing.Bounce.easeOut);
  3. };
  4. function tweenBall(easeType) {
  5.         var begin = 20;
  6.         var end = 380;
  7.         var time = 20;
  8.         var mc = ball_mc;
  9.         ball_tween = new mx.transitions.Tween(mc, "_x", easeType, begin, end, time);
  10. }

nur passiert leider nichts. geht nicht. Die Klassen sind in meinem Programmordner vorhanden, nur leider passiert nichts. geht das bei dir?
ne ahnung woran das liegen kann?

thx
flashfreak0711 ist offline   Mit Zitat antworten
Alt 17-06-2005, 17:31   #4 (permalink)
Custom Title
 
Registriert seit: Aug 2001
Beiträge: 467
Versuchs weiter, es lohnt sich

"ball_tween" wie kommst Du darauf ?
Zitat:
var mc = ball_mc;
danach muss Deine Instanz "ball_mc" heissen.
__________________
---::::: AVisioN :::::---
AVisioN ist offline   Mit Zitat antworten
Alt 17-06-2005, 17:39   #5 (permalink)
Neuer User
 
Registriert seit: Jun 2005
Beiträge: 11
hat sich erledigt

hätte nur mal den richtigen bezeichner für den mc in var mc eintragen sollen.
geht alles. Wunderbar.

und für alle die es interessiert steht hier noch mehr dazu:
http://www.bit-101.com/tutorials/
Thx a lot man.

greetz

Geändert von flashfreak0711 (17-06-2005 um 18:39 Uhr)
flashfreak0711 ist offline   Mit Zitat antworten
Alt 17-06-2005, 19:08   #6 (permalink)
Neuer User
 
Registriert seit: Jun 2005
Beiträge: 11
Hätte da doch noch ne Frage zu dem Thema.

Kann man irgendwie abfragen wann die transition zu ende ist?
sprich das eine aufruf erfolgt direkt nachdem die bewegung zu ende ist?

greetz
flashfreak0711 ist offline   Mit Zitat antworten
Alt 17-06-2005, 19:20   #7 (permalink)
Custom Title
 
Registriert seit: Aug 2001
Beiträge: 467
Aber Hallo,
ActionScript:
  1. ball_tween.onMotionFinished = function() {
  2.     trace("finished");
  3. }

sollte so laufen, sonst sag bescheid.
__________________
---::::: AVisioN :::::---
AVisioN ist offline   Mit Zitat antworten
Alt 17-06-2005, 20:13   #8 (permalink)
Neuer User
 
Registriert seit: Jun 2005
Beiträge: 11
Thanks Dude.

Super Sache. Hat alles perfekt funktioniert.
flashfreak0711 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 08:21 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele