Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 17-12-2004, 00:12   #1 (permalink)
Wer??? Ich???
 
Registriert seit: May 2003
Ort: München
Beiträge: 807
Interval stoppen

Hallo zusammen,

ich habe ein Problem bei dem ich hoffe das Ihr mir Helfen könnt.

Ich haben einen MC1 in dem ist nochmal ein MC2 der ein externes Bild lädt.
Sobald das Bild geladen ist wird mit einem setInterval eine Function aufgerufen die den _alpha Wert des MC2 von Null auf Hundert setzt.

ActionScript:
  1. ID = setInterval(blende,50);
  2.  
  3. function blende()
  4. {
  5. i++;
  6. mc2._alpha += i* 10;
  7. if(mc2._alpha >= 100)
  8. {
  9. clearInterval(ID);
  10. }
  11. }

Soweit hoffe ich alles klar.

So nun hab ich einen Button der onRelease ein neues Bild in den MC2 laden soll. Das funktioniert auch alles Wunderbar solange man die 0,5 Sek. wartet die das Bild braucht bis es auf _alpha 100 ist und somit der Interval gelöscht wird.

Drückt man aber auf den Button während das Bild noch nicht bei _alpha 100 ist läuft der Interval weiter und ein neuer wird wegen dem erneuten Ladevorgangs gestartet. Das heist jetzt laufen schon 2 Intervale. Das und das will ich natürlich nicht.

Das Problem ist die Intervale laufen weiter aber die MC´s die sie erstellt haben gibt es gar nicht mehr.



Gibt es eine Möglichkeit an beliebiger Stelle auf einen Bestimmten Interval zuzugreifen?

Oder habt ihr eine andere Idee?

Danke für eure Hilfe.

Cu
hOmId
Homid ist offline   Mit Zitat antworten
Alt 17-12-2004, 05:12   #2 (permalink)
All-rounder
 
Benutzerbild von thebiz
 
Registriert seit: Mar 2004
Ort: Bayerische Rhön
Beiträge: 2.507
Hi.

Du kannst es doch so machen, dass beim
Drücken auf den Button erstmal ein
clearInterval(ID) geschieht.
Das müsste doch schon reichen.
__________________

--------------------------------
Ich klicke, ergo bin ich. (me)
--------------------------------
thebiz ist offline   Mit Zitat antworten
Alt 17-12-2004, 09:13   #3 (permalink)
a.k.a maddin79
 
Benutzerbild von madflanderz
 
Registriert seit: Jul 2003
Ort: berlin f-hain
Beiträge: 1.693
dein problem ist ja nunmal, daß du deine intervalID immer wieder überschriebst.
vergib lieber eindeutige intervalID namen, du kannst ja z.b. i dafür benutzen: this["ID"+i], dann hast du eindeutige namen und kannst auch alle intervalle wieder löschen
__________________
www.madflanderz.de

ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°` _ addicted to bass _ `°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø
madflanderz ist offline   Mit Zitat antworten
Alt 17-12-2004, 19:47   #4 (permalink)
Wer??? Ich???
 
Registriert seit: May 2003
Ort: München
Beiträge: 807
@ thebiz: Das dacht ich auch, aber so einfach geht das dann doch nicht.

@maddin79: Die interval ID wird doch immer eindeutig vergeben. Oder?

Er zeigt mir auch bei einem trace alle Interval ID´s an die noch laufen. Das Problem ist nur das die Intervale in einem MC gestartet werden der beim erneuten Drücken des Buttons nicht mehr vorhanden ist.

Ich versuch euch das mal zu Erklären.

1. Zwei rahmen werden in den Film geladen. Jeder Rahmen lädt Drei Bilder. Wenn die Bilder geladen wurden wird die Funktion blende() aufgerufen. Die dafür da ist die geladen Bilder von _alpha 0 bis _alpha 100 zu Setzen. Wenn _alpha 100 ist wird die der Interval der die Funktion blende() aufruft gelöscht.

2. Wenn man jetzt auf einen anderen Menuepunkt klickt werden diese Rahmen entfernt und 2 neue gestartet.

Das selbe beginnt also von vorne.

Ihr könnt euch das alles auch mal anschauen.

Unter

Link


Klickt mal auf Projekte und dann auf abgeschlossene Projekte.
Es erscheinen 2 Rahmen die die Bilder laden.

Wenn ihr während die Bilder noch nicht auf _alpha hundert sind auf z.B. abgeschlossene Projekte klickt und ein paar Sekunden wartet werdet ihr sehehn das die Bilder plötzlich verschwinden und wieder Kurz angezeigt werden.

Das ist echt ein Blöder Fehler. Aber vielleicht löse ich das ganze Problem auch anders.

Vielleicht hat ja von euch einer die Zündende Idee.

Danke fürs Helfen

Cu
hOmId
Homid ist offline   Mit Zitat antworten
Alt 17-12-2004, 20:11   #5 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
Hast doch sicher den gerade laufenden mc in einer var gespeichert!?
Oder wie kickst Du die Clips?
Edit:
So irgenwie mein isch des
ActionScript:
  1. //zb in mc1
  2. var i = 0;
  3. Sid = setInterval(function () {
  4.     i++;
  5.     trace(i);
  6. }, 500);
  7. //des andere ist Button in _root
  8. var akt_mc = mc1;
  9. btn.onPress = function() {
  10.     clearInterval(akt_mc.Sid);
  11.     akt_mc.removeMovieClip();
  12. };
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"

Geändert von RustyCake (17-12-2004 um 20:20 Uhr)
RustyCake ist offline   Mit Zitat antworten
Alt 17-12-2004, 22:01   #6 (permalink)
Wer??? Ich???
 
Registriert seit: May 2003
Ort: München
Beiträge: 807
Hallo Rusty,

die MC´s kick ich indem ich die neuen Rahmen in das selbe Level lade.

So wie du es oben geschrieben hast hab ich es bis jetzt gelöst gehabt.

Das Funktioniert aber leider nicht.

Das Problem ist das anscheinend die in der Variablen mc gespeicherte Referenz nicht mehr Existiert. ??????

Ich bin mir auch darüber im klaren das die bisherige Lösung nicht die beste ist. Deswegen werd ich das ganze mal überarbeiten und den Aufbau ändern.

Wenn trotzdem noch einer eine Idee hat ist die natürlich gerne gesehen.

Danke für die Hilfe

Cu
hOmId
Homid ist offline   Mit Zitat antworten
Alt 19-12-2004, 02:04   #7 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
Hehe!
ich hab ja schon einiges verloren (Frauen, Geld, etc) aber eine referenz auf nen Clip noch nicht
Hört sich eigentlich nicht so schwierig an (des was Du vorhast), allerdings mit _leveln! Naja, des würd ich doch eher mit containerclips machen!
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"
RustyCake ist offline   Mit Zitat antworten
Alt 19-12-2004, 02:26   #8 (permalink)
Wer??? Ich???
 
Registriert seit: May 2003
Ort: München
Beiträge: 807
Mit container Clips hat es auch nicht Funktioniert.

Ich hab den _alpha vorgang anhand von Tweens in dem MC gemacht der das Bild lädt.

So haut es auch hin. Ist zwar nicht gescriptet aber mei es muss Funktionieren und das tut es jetzt.

Danke für die Hilfe

Cu
hOmId
Homid ist offline   Mit Zitat antworten
Alt 19-12-2004, 11:50   #9 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
das einfache clearInterval (ID) hilft nur zur hälfte.
ein simples delete ID; sollte da dann aber auch schon reichen...also so:
ActionScript:
  1. clearInterval(ID);
  2. delete ID;
  3.  
  4. // und nu hier den erneuten aufruf des ganzen...
  5.  

greetz

kelor
kelor 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 16:45 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele