Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 31-01-2007, 11:17   #1 (permalink)
Neuer User
 
Registriert seit: Jun 2005
Beiträge: 237
gotoAndPlay Problem

Hi Jungs
Hab seit kurzem ein seltsames Problem mit gotoAndPlay

Folgendes: Ich will einen Preloader bauen der nach und nach Instanzen einer kurzen Animation abspielt.. also bei 10 Prozent spielt sich der erste MC ab bei 20 der zweite etc.

dazu hab ich MC's mit Instanznamen von puck1 bis puck10

Der MC ist folgend aufgebaut :
20 Frames mit der Fade Animation
Frame1: stop(); soll ja nicht von alleine loslegen
Frame20: stop();

ich rufe nun auf der _root Zeitleiste die Animation mit
_root.puck1.gotoAndPlay(2); auf
alles schön und gut... der MC springt in den Frame2 spielt aber nicht weiter ab... das Problem hatte ich schon bei anderen Flashs... ich weiß nicht mehr weiter... hat jemand eine Lösung?

Danke
D@luxe
D@luxe ist offline   Mit Zitat antworten
Alt 31-01-2007, 11:24   #2 (permalink)
Der Wunderhund
 
Benutzerbild von gaspode
 
Registriert seit: Jun 2002
Ort: Hattingen
Beiträge: 10.515
Schreib mal in die zweiten Frames der MCs noch extra ein play();

gruß, gaspode
gaspode ist offline   Mit Zitat antworten
Alt 31-01-2007, 11:24   #3 (permalink)
liebt Skorpionin
 
Benutzerbild von Skorpion
 
Registriert seit: Apr 2003
Beiträge: 1.258
Und du bist sicher, dass bei 10 Prozent Ladestatus dein puck1 schon komplett geladen ist? Wenn nicht erklärt dies, warum der Clip nicht abspielen kann.
Skorpion ist offline   Mit Zitat antworten
Alt 31-01-2007, 11:31   #4 (permalink)
Neuer User
 
Registriert seit: Jun 2005
Beiträge: 237
@Gaspode: Vielen Dank hat funktioniert.

@ Skorpion: hab noch keinen Preloader eingebaut... ich spreche das im Moment im komplett geladenen Status an...

Aber gut zu wissen... wär es sinnvoll den Preloader zu preloaden und dann erst den Rest zu laden damit alles funktioniert?
D@luxe ist offline   Mit Zitat antworten
Alt 31-01-2007, 14:10   #5 (permalink)
Neuer User
 
Registriert seit: Jun 2005
Beiträge: 237
hi jungs... genau das Problem ist aufgetreten, dass die Preloadergrafiken noch nicht fertig geladen sind und dann erscheint alles gleichzeit...

wie kann ich das elegant und sauber lösen?

thx for support

Hier das Actionscript... ich hab folgendes zusätzliches Problem... die Funktion fragt den Status nur einmal ab... mit onEnterFrame funktioniert das auch nicht... bitte steinigt mich nicht wegen dem Code...

ActionScript:
  1. loader = function()
  2. {
  3.    
  4.     if (_root.getBytesLoaded() >= 10)
  5.     {
  6.     //Prozente Start
  7.     gesamt   = _root.getBytesTotal();
  8.     bisjetzt    = _root.getBytesLoaded();
  9.     prozent = Math.ceil((bisjetzt/gesamt)*100);
  10.     pucks = prozent/15;
  11.     //Prozente Ende
  12.    
  13.     //PreloadAnimation
  14.    
  15.         if (prozent >= 10)
  16.         {
  17.             _root.puck1.gotoAndPlay(2);
  18.            
  19.         }
  20.            
  21.             if (prozent >= 20)
  22.         {
  23.             _root.puck2.gotoAndPlay(2);
  24.         }
  25.        
  26.         if (prozent >= 30)
  27.         {
  28.             _root.puck3.gotoAndPlay(2);
  29.         }
  30.        
  31.         if (prozent >= 40)
  32.         {
  33.             _root.puck4.gotoAndPlay(2);
  34.         }
  35.        
  36.         if (prozent >= 50)
  37.         {
  38.             _root.puck5.gotoAndPlay(2);
  39.         }
  40.        
  41.         if (prozent >= 60)
  42.         {
  43.             _root.puck6.gotoAndPlay(2);
  44.         }
  45.        
  46.         if (prozent >= 70)
  47.         {
  48.             _root.puck7.gotoAndPlay(2);
  49.         }
  50.        
  51.         if (prozent >= 80)
  52.         {
  53.             _root.puck8.gotoAndPlay(2);
  54.         }
  55.        
  56.         if (prozent >= 90)
  57.         {
  58.             _root.puck9.gotoAndPlay(2);
  59.         }
  60.        
  61.         if (prozent >= 100)
  62.         {
  63.             _root.puck10.gotoAndPlay(2);
  64.         }
  65.        
  66.         if (prozent >= 100)
  67.         {
  68.             _root.puck11.gotoAndPlay(2);
  69.         }
  70.    
  71.     }
  72.    
  73. }
  74.  
  75. loader();

Geändert von D@luxe (31-01-2007 um 14:18 Uhr)
D@luxe ist offline   Mit Zitat antworten
Alt 01-02-2007, 09:46   #6 (permalink)
Neuer User
 
Registriert seit: Jun 2005
Beiträge: 237
hat keiner eine Lösung auf Lager?

hab jetzt den Preloader umgebaut... jetzt funktioniert der Loader aber die Animation bleibt wieder im zweiten Frame hängen:

Mein AS:
ActionScript:
  1. _root.puck1.gotoAndPlay(2);
  2.  
  3. play();
  4. /*
  5. Preloader _totalframes wäre auch möglich anstatt prozent,
  6. jedoch werden dann keine 100% angezeigt, da der Prloader dann
  7. nicht mit gezählt wird.
  8. */
  9.  
  10. prozentwert >= "10"_root.puck1.gotoAndPlay(2)trace("in") ;
  11. prozentwert >= "15"_root.puck2.gotoAndPlay(2) : trace("in") ;
  12. prozentwert >= "20"_root.puck3.gotoAndPlay(2) : trace("in") ;
  13. prozentwert >= "25"_root.puck4.gotoAndPlay(2) : trace("in") ;
  14. prozentwert >= "30"_root.puck5.gotoAndPlay(2) : trace("in") ;
  15. prozentwert >= "35"_root.puck6.gotoAndPlay(2) : trace("in") ;
  16. prozentwert >= "40"_root.puck7.gotoAndPlay(2) : trace("in") ;
  17. prozentwert >= "45"_root.puck8.gotoAndPlay(2) : trace("in") ;
  18. prozentwert >= "50"_root.puck9.gotoAndPlay(2) : trace("in") ;
  19. prozentwert >= "60"_root.puck10.gotoAndPlay(2) : trace("in") ;
  20. prozentwert >= "65"_root.puck11.gotoAndPlay(2) : trace("in") ;
  21. prozentwert >= "70"_root.puck12.gotoAndPlay(2) : trace("in") ;
  22. prozentwert >= "80"_root.puck13.gotoAndPlay(2) : trace("in") ;
  23. prozentwert >= "90"_root.puck14.gotoAndPlay(2) : trace("in") ;
  24. prozentwert >= "99"_root.puck15.gotoAndPlay(2) : trace("in") ;
  25.  
  26.  
  27.  
  28. if (prozentwert == 100) {   
  29.  
  30.     this.gotoAndPlay("start")   
  31.  
  32. } else {
  33.  
  34.     prozentwert = Int((getBytesLoaded()/getBytesTotal())*100);
  35.     //prozent = "loaded  " add prozentwert add "%";
  36.     //setProperty(balken, _height, prozentwert*2);
  37.     //setProperty(anzeige,_y,prozentwert);
  38.     //pro._y = 300-prozentwert*2
  39. }

kann es sein, dass dieses immer play(); und prevFrame(); die Animation immer wieder auf Frame 2 springen lässt? Wie kann ich das am besten lösen? onEnterFrame?

Geändert von D@luxe (01-02-2007 um 10:34 Uhr)
D@luxe ist offline   Mit Zitat antworten
Alt 01-02-2007, 13:34   #7 (permalink)
Neuer User
 
Registriert seit: Jun 2005
Beiträge: 237
habs jetzt nochmal umgebaut... mit dem onEnterFrame hats nicht funktioniert... bin echt ratlos... hat jemand einen Tip? das mit dem play(); und dem prevFrame(); im zweiten Frame funktioniert nicht, weil er die Animation immer wieder auf Frame 2 springen lässt

ActionScript:
  1. //_root.puck1.gotoAndPlay(2);
  2. play();
  3.  
  4. /*
  5. Preloader _totalframes wäre auch möglich anstatt prozent,
  6. jedoch werden dann keine 100% angezeigt, da der Prloader dann
  7. nicht mit gezählt wird.
  8. */
  9.  
  10. if (prozentwert >= "10") {  _root.puck1.gotoAndPlay(2);}
  11. if (prozentwert >= "15") {  _root.puck2.gotoAndPlay(2);}
  12. if (prozentwert >= "20") {  _root.puck3.gotoAndPlay(2);}
  13. if (prozentwert >= "25") {  _root.puck4.gotoAndPlay(2);}
  14. if (prozentwert >= "30") {  _root.puck5.gotoAndPlay(2);}
  15. if (prozentwert >= "35") {  _root.puck6.gotoAndPlay(2);}
  16. if (prozentwert >= "40") {  _root.puck7.gotoAndPlay(2);}
  17. if (prozentwert >= "45") {  _root.puck8.gotoAndPlay(2);}
  18. if (prozentwert >= "50") {  _root.puck9.gotoAndPlay(2);}
  19. if (prozentwert >= "60") {  _root.puck10.gotoAndPlay(2);}
  20. if (prozentwert >= "65") {  _root.puck11.gotoAndPlay(2);}
  21. if (prozentwert >= "70") {  _root.puck12.gotoAndPlay(2);}
  22. if (prozentwert >= "80") {  _root.puck13.gotoAndPlay(2);}
  23. if (prozentwert >= "90") {  _root.puck14.gotoAndPlay(2);}
  24. if (prozentwert >= "99") {  _root.puck15.gotoAndPlay(2);}
  25.  
  26.  
  27.  
  28. if (prozentwert == 100) {   
  29. _root.gotoAndPlay("start");
  30. } else {
  31.  
  32.     prozentwert = Int((getBytesLoaded()/getBytesTotal())*100);
  33.     //prozent = "loaded  " add prozentwert add "%";
  34.     //setProperty(balken, _height, prozentwert*2);
  35.     //setProperty(anzeige,_y,if (prozentwert);
  36.     //pro._y = 300-prozentwert*2
  37. }
D@luxe ist offline   Mit Zitat antworten
Alt 01-02-2007, 14:40   #8 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Also eine Schleife brauchst du logischerweise - und dann kannst du das einfach mit nextFrame() für deine Anis machen:
PHP-Code:
if (prozentwert >= "15") {  _root.puck2.nextFrame();} 
Als Alternative eine Var zur Überprüfung:
PHP-Code:
if (prozentwert >= "15" && !p2) { 
_root.puck2.gotoAndPlay(2);
p2 true

__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 02-02-2007, 10:12   #9 (permalink)
Neuer User
 
Registriert seit: Jun 2005
Beiträge: 237
Variante 1 hat scheinbar eine Endlosschleife zur Folge...
Variante 2 funktioniert komischerweise auch nicht... bin echt am verzweifeln...
D@luxe ist offline   Mit Zitat antworten
Alt 02-02-2007, 10:44   #10 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Haste mal die Anführungszeichen weg genommen? Dass muss nämlich sonst klappen (behaupte ich mal so).

edit -> Geht sogar mit den Anführungszeichen... Mal so als Test:
ActionScript:
  1. var p = 0;
  2. this.onEnterFrame = function() {
  3.     p++;
  4.     if (p>="10"&&!p1) {
  5.         trace("10 erreicht");
  6.         p1=true
  7.         trace(p)
  8.     }
  9.     if (p>=15&&!p2) {
  10.         trace("15 erreicht");
  11.         p2=true
  12.         trace(p)
  13.     }
  14.     if (p>=20&&!p3) {
  15.         trace("20 erreicht");
  16.         p3=true
  17.         trace(p)
  18.         delete this.onEnterFrame
  19.     }
  20. };
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++

Geändert von Der Frager (02-02-2007 um 10:51 Uhr)
Der Frager ist offline   Mit Zitat antworten
Alt 02-02-2007, 14:08   #11 (permalink)
Neuer User
 
Registriert seit: Jun 2005
Beiträge: 237
ja mit einem onEnterFrame funktionierts... aber mit dieser Framehüpferei scheinbar nicht
D@luxe ist offline   Mit Zitat antworten
Alt 05-02-2007, 08:56   #12 (permalink)
Neuer User
 
Registriert seit: Jun 2005
Beiträge: 237
hab den Fehler jetzt gefunden.
Die Kontrollvariablen werden bereits früher auf True gesetzt...
habs getestet mit p10
sollte erst ab 60% true sein, vorher undefined

ist aber schon bei ca. 30% true

Frame 1:
ActionScript:
  1. trace("P10: "+p10 + " Prozent: "+prozentwert);
  2. //_root.puck1.gotoAndPlay(2);
  3. play();
  4.  
  5. if (prozentwert >= "10" and !p1) {  _root.puck1.gotoAndPlay(2); p1=true; }
  6. if (prozentwert >= "15" and !p2) {  _root.puck2.gotoAndPlay(2); p2=true; }
  7. if (prozentwert >= "20" and !p3) {  _root.puck3.gotoAndPlay(2); p3=true; }
  8. if (prozentwert >= "25" and !p4) {  _root.puck4.gotoAndPlay(2); p4=true; }
  9. if (prozentwert >= "30" and !p5) {  _root.puck5.gotoAndPlay(2); p5=true; }
  10. if (prozentwert >= "35" and !p6) {  _root.puck6.gotoAndPlay(2); p6=true; }
  11. if (prozentwert >= "40" and !p7) {  _root.puck7.gotoAndPlay(2); p7=true; }
  12. if (prozentwert >= "45" and !p8) {  _root.puck8.gotoAndPlay(2); p8=true; }
  13. if (prozentwert >= "50" and !p9) {  _root.puck9.gotoAndPlay(2); p9=true; }
  14. if (prozentwert >= "60" and !p10) {  _root.puck10.gotoAndPlay(2); p10=true; }
  15. if (prozentwert >= "65" and !p11) {  _root.puck11.gotoAndPlay(2); p11=true; }
  16. if (prozentwert >= "70" and !p12) {  _root.puck12.gotoAndPlay(2); p12=true; }
  17. if (prozentwert >= "80" and !p13) {  _root.puck13.gotoAndPlay(2); p13=true; }
  18. if (prozentwert >= "90" and !p14) {  _root.puck14.gotoAndPlay(2); p14=true; }
  19. if (prozentwert >= "99" and !p15) {  _root.puck15.gotoAndPlay(2); p15=true; }
  20.  
  21.  
  22.  
  23. if (prozentwert == 100) {   
  24. _root.gotoAndPlay("start");
  25. } else {
  26.  
  27.     prozentwert = Int((getBytesLoaded()/getBytesTotal())*100);
  28.  
  29. }


Frame 2:
ActionScript:
  1. prevFrame();

Hoffe mir kann jemand helfen... ich komm nicht mehr weiter
D@luxe ist offline   Mit Zitat antworten
Alt 05-02-2007, 10:20   #13 (permalink)
Neuer User
 
Registriert seit: Jun 2005
Beiträge: 237
Hier noch ein Testscript das ebenfalls true zurückgibt...
ich sehe scheinbar den Wald vor lauter Bäumen nicht

Was mach ich nur falsch... wenn prozentwert undefined oder ein String ist springt er in die if Abfrage...

ActionScript:
  1. var prozentwert:Number = Math.round((getBytesLoaded()/getBytesTotal())*100);

ist da irgendwo ein Fehler?

Hier das funktionierende Testscript:

ActionScript:
  1. var prozentwert:Number = 10;
  2. trace(prozentwert);
  3. if (prozentwert>=80 && !x)
  4. {
  5. trace("Prozent:"+prozentwert);
  6. x=true
  7. trace(x);
  8. }

Nachtrag: Überarbeitetes Script: Funktioniert auch nicht

ActionScript:
  1. trace("P10: "+p10 + " Prozent: "+prozentwert);
  2. trace("X: "+x);
  3. if (prozentwert>=80 && !x)
  4. {
  5. _root.puck1.gotoAndPlay(2);
  6. x=true
  7. }
  8. play();
  9.  
  10. if (prozentwert >= 10 and !p1) {    p1=true_root.puck1.gotoAndPlay(2);}
  11. if (prozentwert >= 15 and !p2) {    p2=true_root.puck2.gotoAndPlay(2);}
  12. if (prozentwert >= 20 and !p3) {    p3=true_root.puck3.gotoAndPlay(2);}
  13. if (prozentwert >= 25 and !p4) {    p4=true_root.puck4.gotoAndPlay(2);}
  14. if (prozentwert >= 30 and !p5) {    p5=true_root.puck5.gotoAndPlay(2);}
  15. if (prozentwert >= 35 and !p6) {    p6=true_root.puck6.gotoAndPlay(2);}
  16. if (prozentwert >= 40 and !p7) {    p7=true_root.puck7.gotoAndPlay(2);}
  17. if (prozentwert >= 45 and !p8) {  _root.puck8.gotoAndPlay(2); p8=true; }
  18. if (prozentwert >= 50 and !p9) {  _root.puck9.gotoAndPlay(2); p9=true; }
  19. if (prozentwert >= 60 and !p10) {  _root.puck10.gotoAndPlay(2); p10=true; }
  20. if (prozentwert >= 65 and !p11) {  _root.puck11.gotoAndPlay(2); p11=true; }
  21. if (prozentwert >= 70 and !p12) {  _root.puck12.gotoAndPlay(2); p12=true; }
  22. if (prozentwert >= 80 and !p13) {  _root.puck13.gotoAndPlay(2); p13=true; }
  23. if (prozentwert >= 90 and !p14) {  _root.puck14.gotoAndPlay(2); p14=true; }
  24. if (prozentwert >= 99 and !p15) {  _root.puck15.gotoAndPlay(2); p15=true; }
  25.  
  26.  
  27.  
  28. if (prozentwert == 100) {   
  29. _root.gotoAndPlay("start");
  30. } else {
  31.  
  32.     var prozentwert:Number = Math.round((getBytesLoaded()/getBytesTotal())*100);
  33.  
  34. }

Geändert von D@luxe (05-02-2007 um 10:26 Uhr)
D@luxe ist offline   Mit Zitat antworten
Alt 05-02-2007, 11:08   #14 (permalink)
Neuer User
 
Registriert seit: Jun 2005
Beiträge: 237
habs jetzt geschaft die If Abfragen zu korrigieren

hab die Deklaration des Prozentwertes vor die Abfragen gestellt...

beim ersten Durchlauf war prozentwert undefined und deswegen hat er alle vars auf true gesetzt

Die Animationen spielen allerdings nicht ab :-\

ActionScript:
  1. var prozentwert:Number = Math.round((getBytesLoaded()/getBytesTotal())*100);
  2. play();
  3.  
  4. if (prozentwert >= 10 and !p1) {_root.puck1.gotoAndPlay(2);p1=true; trace("Puck1 Wert erreicht"); }
  5. if (prozentwert >= 15 and !p2) {_root.puck2.gotoAndPlay(2);p2=true; trace("Puck2 Wert erreicht");}
  6. if (prozentwert >= 20 and !p3) {_root.puck3.gotoAndPlay(2);p3=true  trace("Puck3 Wert erreicht"); ;}
  7. if (prozentwert >= 25 and !p4) {_root.puck4.gotoAndPlay(2);p4=true; trace("Puck4 Wert erreicht");}
  8. if (prozentwert >= 30 and !p5) {_root.puck5.gotoAndPlay(2);p5=true; trace("Puck5 Wert erreicht");}
  9. if (prozentwert >= 35 and !p6) {_root.puck6.gotoAndPlay(2);p6=true; trace("Puck6 Wert erreicht");}
  10. if (prozentwert >= 40 and !p7) {_root.puck7.gotoAndPlay(2);p7=true; trace("Puck7 Wert erreicht");}
  11. if (prozentwert >= 45 and !p8) {  _root.puck8.gotoAndPlay(2); p8=true; trace("Puck8 Wert erreicht");}
  12. if (prozentwert >= 50 and !p9) {  _root.puck9.gotoAndPlay(2); p9=truetrace("Puck9 Wert erreicht");}
  13. if (prozentwert >= 60 and !p10) {  _root.puck10.gotoAndPlay(2); p10=true; trace("Puck10 Wert erreicht");}
  14. if (prozentwert >= 65 and !p11) {  _root.puck11.gotoAndPlay(2); p11=true; trace("Puck11 Wert erreicht");}
  15. if (prozentwert >= 70 and !p12) {  _root.puck12.gotoAndPlay(2); p12=true; trace("Puck12 Wert erreicht");}
  16. if (prozentwert >= 80 and !p13) {  _root.puck13.gotoAndPlay(2); p13=true; trace("Puck13 Wert erreicht");}
  17. if (prozentwert >= 90 and !p14) {  _root.puck14.gotoAndPlay(2); p14=true; trace("Puck14 Wert erreicht");}
  18. if (prozentwert >= 99 and !p15) {  _root.puck15.gotoAndPlay(2); p15=true; trace("Puck15 Wert erreicht");}
  19.  
  20.  
  21.  
  22. if (prozentwert == 100) {   
  23. _root.gotoAndPlay("start");
  24. }

Geändert von D@luxe (05-02-2007 um 11:13 Uhr)
D@luxe ist offline   Mit Zitat antworten
Alt 05-02-2007, 11:10   #15 (permalink)
Der Wunderhund
 
Benutzerbild von gaspode
 
Registriert seit: Jun 2002
Ort: Hattingen
Beiträge: 10.515
Hast Du mal die fla?

gruß, gaspode
gaspode 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 17:13 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele