Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 23-01-2005, 17:24   #1 (permalink)
Scriptlerbastler
 
Registriert seit: Sep 2004
Beiträge: 122
Wenn tween beendet, anderer soll starten ....

Naben,

ich hab ein problem, wenn ich eine Animation ausführe und diese
beendet ist möchte ich eine weitere starten doch wie mach ich das?
hier mein vorläufiges scirpt:

PHP-Code:
MovieClip.prototype.mover = function(distXdistYspeed) {
    
this.onEnterFrame = function() {
        
this._x += (distX-this._x)/speed;
        
this._y += (distY-this._y)/speed;
    }
}

_root.attachMovie("mc_house""house""100", {_x:-100_y:90_xscale:40_yscale:40});


this.house.onEnterFrame = function() {
    
this.mover(5009050);
    if (
this._x == 500) {
        
_root.attachMovie("mc_test""test"105, {_x:-100_y:90});
        
test.mover(4009050);
        
trace("ich bin da");
    }
    else {
        
trace("warte noch");
    }
}; 
Wär super wenn wer helfen könnte,

mfg
M(a)c_Flash
M(a)c_Flash ist offline   Mit Zitat antworten
Alt 23-01-2005, 17:33   #2 (permalink)
flashfiziert
 
Registriert seit: May 2002
Ort: Leipzig
Beiträge: 70
ich habe einen tween in das erste frame gelegt und den anderen in den 2. frame. bei beiden kommt ein stop(); hinzu.

im letzten frame, des ersten tweens kommt _parent.gotoAndStop(2);
heidelbeer ist offline   Mit Zitat antworten
Alt 23-01-2005, 17:50   #3 (permalink)
Pending…
 
Benutzerbild von psyk
 
Registriert seit: Jul 2002
Ort: Hamburg
Beiträge: 3.866
Per if Bedingung geht das auch und ist sauberer.
ActionScript:
  1. this.meinAni_mc.onEnterFrmae=function(){
  2.     if (this._currentframe == this._totalframes){
  3.         _root.meinZweiterAni_mc.gotoAndPlay(1);
  4.         delete this.onEnterFrame;
  5.     }
  6. }

Edit: Übrigens läuft dein Mover immer weiter, sprich der oEF wird nicht beendet
__________________
:: Warum einfach, wenn's auch kompliziert geht! ::

Geändert von psyk (23-01-2005 um 17:52 Uhr)
psyk ist offline   Mit Zitat antworten
Alt 23-01-2005, 18:02   #4 (permalink)
flashfiziert
 
Registriert seit: May 2002
Ort: Leipzig
Beiträge: 70
Zitat:
Zitat von psyk
Per if Bedingung geht das auch und ist sauberer.
ActionScript:
  1. this.meinAni_mc.onEnterFrmae=function(){
  2.     if (this._currentframe == this._totalframes){
  3.         _root.meinZweiterAni_mc.gotoAndPlay(1);
  4.         delete this.onEnterFrame;
  5.     }
  6. }

Edit: Übrigens läuft dein Mover immer weiter, sprich der oEF wird nicht beendet

habe erst heute wieder gelesen, dass man bzgl. einer guten performence so gut wie auf funktionen verzichten sollte.
heidelbeer ist offline   Mit Zitat antworten
Alt 23-01-2005, 18:05   #5 (permalink)
Scriptlerbastler
 
Registriert seit: Sep 2004
Beiträge: 122
hi psyk

Danke für deine Antwort, es funktioniert leider nicht so ganz
wie ich das haben möchte. Deine function ist nicht schlecht.

Doch kann ich nicht die Animation erst dann Ausführen wenn das
erste mc _x = 500; erreicht hat? Müsste doch über die if anweisung auch gehen.

Das mit dem Mover möchte ich so habe daher ich ihn nochmal brauche.
M(a)c_Flash ist offline   Mit Zitat antworten
Alt 23-01-2005, 18:11   #6 (permalink)
AAI
 
Benutzerbild von AAI
 
Registriert seit: May 2004
Beiträge: 327
so was...

arbeite fast ausschließlich mit functions.
habe gute Übersicht und keine Performance-Probleme.

Mein Beispiel zum Thema:

ActionScript:
  1. // Voreinstellung
  2. limit = menu.marker._x+menu._x;
  3. first_button = 1;
  4. last_button = 3;
  5.  
  6.  
  7. // Auslöser
  8. move_buttons ();
  9.  
  10.  
  11. // Button moving
  12. function move_buttons () {
  13.     i = first_button;
  14.     interval_1 = setInterval(one_step,18);
  15.     }
  16.  
  17. function one_step (){
  18.     menu["button"+i]._x+= 16
  19.    
  20.     if (menu["button"+i]._x+menu._x>=limit){
  21.         menu["button"+i]._x=limit-menu._x;
  22.         i++;
  23.         if (i>last_button) {
  24.             clearInterval(interval_1);
  25.             };
  26.         };
  27.     };
Angehängte Dateien
Dateityp: zip MovingButton.zip (3,7 KB, 1x aufgerufen)
AAI ist offline   Mit Zitat antworten
Alt 23-01-2005, 18:18   #7 (permalink)
Scriptlerbastler
 
Registriert seit: Sep 2004
Beiträge: 122
hi AAI

Vielen Dank für deinen Post.
Das ist genau das was ich suche.

Nun versuch ich mir nur noch einen überblick über das script zu
machen da es für mich als newbie ein wenig komplex ist.

Vielen Dank
mfg M(a)c_Flash
M(a)c_Flash ist offline   Mit Zitat antworten
Alt 23-01-2005, 19:06   #8 (permalink)
Scriptlerbastler
 
Registriert seit: Sep 2004
Beiträge: 122
Doch wie kann ich abfragen ob er schon _x = 500 erreicht hat?
geht das?

PHP-Code:
this.house.onEnterFrame = function() {
    
this.mover(5009050);
    if (
this._x == 500) {
        
trace("ich bin da");
    }
}; 
*rofl* fescht nachdenk.

mfg
M(a)c_Flash
M(a)c_Flash ist offline   Mit Zitat antworten
Alt 23-01-2005, 21:22   #9 (permalink)
Scriptlerbastler
 
Registriert seit: Sep 2004
Beiträge: 122
noch ein letzter push versuch
M(a)c_Flash ist offline   Mit Zitat antworten
Alt 23-01-2005, 22:31   #10 (permalink)
AAI
 
Benutzerbild von AAI
 
Registriert seit: May 2004
Beiträge: 327
nur noch so viel von meiner Seite...

...da ist ein MC: 'Marker' im Film. Nach seiner _x-Position richten sich die Button aus. Du kannst aber auch in der Variable 'limit' den 'menu.marker._x' entfernen und einen festen Wert dafür schreiben. z.B.: 500.

Sorry, aber 'onEnterFrame' ist mir gegenüber feindlich gesinnt

Geändert von AAI (23-01-2005 um 22:36 Uhr)
AAI ist offline   Mit Zitat antworten
Alt 23-01-2005, 23:22   #11 (permalink)
Pending…
 
Benutzerbild von psyk
 
Registriert seit: Jul 2002
Ort: Hamburg
Beiträge: 3.866
Zitat:
Zitat von heidelbeer
habe erst heute wieder gelesen, dass man bzgl. einer guten performence so gut wie auf funktionen verzichten sollte.
Das ist totaler Blödsinn.
Da Funktionen solange sie nicht angesprochen werden, garnicht aktiv sind.

Was du vielleicht meinst sind onEnterFrame-Funktionen, die man am besten nach beendigung der Anweisung wieder löschen sollte.

Zitat:
Zitat von M(a)c_Flash
Das mit dem Mover möchte ich so habe daher ich ihn nochmal brauche.
Da du ein prototype verwendes kannst du diese immer wieder wärend der Laufzeit aufrufen.
Problem ist halt nur solange wieder mover nicht benutzt wird, zieht er Performence, was heidelbeer glaub ich meinte.

Setz doch mal ein trace in dein mover.
__________________
:: Warum einfach, wenn's auch kompliziert geht! ::
psyk ist offline   Mit Zitat antworten
Alt 24-01-2005, 08:33   #12 (permalink)
HAY
Neuer User
 
Benutzerbild von HAY
 
Registriert seit: Aug 2002
Ort: Faust-Stadt
Beiträge: 2.577
hi zusammen
durch diese formel wirst du den wert 500 nie erreichen.
this._x += (distX-this._x)/speed;
must ein bischen spielen um den exakten wert zu erreichen
so in etwa
ActionScript:
  1. i = 1;
  2. MovieClip.prototype.mover = function(distX, distY, speed) {
  3.     this.onEnterFrame = function() {
  4.         this._x += (distX-this._x)/speed;
  5.         this._y += (distY-this._y)/speed;
  6.         if (this._x+3>distX) {
  7.                           this._x=500
  8.             delete this.onEnterFrame;
  9.             (i += 1) == 3 ? i=1 : 0;
  10.             _root.attachMovie("mc_bu"+i, "bu"+i, 100+i, {_x:-100, _y:90, _xscale:40, _yscale:40});
  11.             _root["bu"+i].mover(500, 90, 50);
  12.         }
  13.     };
  14. };
  15. _root.attachMovie("mc_bu"+i, "bu"+i, 100+i, {_x:-100, _y:90, _xscale:40, _yscale:40});
  16. _root["bu"+i].mover(500, 90, 50);
__________________
gruß Harry
HAY ist offline   Mit Zitat antworten
Alt 24-01-2005, 15:21   #13 (permalink)
Scriptlerbastler
 
Registriert seit: Sep 2004
Beiträge: 122
Hi,

@ Hay: Danke für deinen Script, ich denke das du genau das meinst
was ich suche doch ich versteh das script nicht so ganz.

@all: ich hab hier mal kurz ein swf. file upgeloaded darin ist zu
sehen was ich bauen möchte via AS. hoffe das es jetzt ein wenig verständlicher wird.

mfg
M(a)c_Flash
Angehängte Dateien
Dateityp: zip test.swf.zip (1,2 KB, 4x aufgerufen)
M(a)c_Flash ist offline   Mit Zitat antworten
Alt 24-01-2005, 18:21   #14 (permalink)
Scriptlerbastler
 
Registriert seit: Sep 2004
Beiträge: 122
ich push mal wieder, sorry aber ich bin immer noch nicht weiter gekommen
M(a)c_Flash ist offline   Mit Zitat antworten
Alt 24-01-2005, 18:23   #15 (permalink)
HAY
Neuer User
 
Benutzerbild von HAY
 
Registriert seit: Aug 2002
Ort: Faust-Stadt
Beiträge: 2.577
hi
müste jetzt klar sein oder
ActionScript:
  1. i = 1;
  2. endwert = 500;
  3. MovieClip.prototype.mover = function(distX, speed) {
  4.     _root.attachMovie("mc_bu"+i, "bu"+i, 100+i, {_x:-100, _y:90});
  5.     _root["bu"+i].onEnterFrame = function() {
  6.         this._x += (distX-this._x)/speed;
  7.         //bis hier wohl alles klaro
  8.         if (this._x+1>distX) {  // +1 sonst wird der endwert nicht erreicht
  9.             this._x = endwert;
  10.             endwert -= 100// abstabd zb. 100
  11.             delete this.onEnterFrame;
  12.             (i += 1) != 5 ? mover(endwert, 10) : 0//  wenn i ist 5 (sind vier mc`s) ende
  13.         }
  14.     };
  15. };
  16. mover(endwert, 10); // endwert ist erste wiederholung
  17.  
__________________
gruß Harry
HAY 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 13:26 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele