Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 25-10-2004, 07:39   #1 (permalink)
Neuer User
 
Registriert seit: Dec 2002
Beiträge: 188
2 mc´s mit unterschiedlichen Intervallen ein- und ausblenden lassen

Wie kann ich zwei verschiedene mc´s in unterschiedlichen Intervallen ein- und ausblenden lassen?

Möchte dies über Actionscript generieren und nicht über die Timeline?

Wer kann mir einen Ansatz geben?
kaschwei ist offline   Mit Zitat antworten
Alt 25-10-2004, 08:04   #2 (permalink)
carpe noctem
 
Registriert seit: Aug 2004
Beiträge: 114
Lösungsvorschlag

Zitat:
Zitat von kaschwei
Wie kann ich zwei verschiedene mc´s in unterschiedlichen Intervallen ein- und ausblenden lassen?
Hi kaschwei.
Das könntest du mit der Eigenschaft _alpha machen:
zuerst beide MC auf alpha = 0 setzen:
ActionScript:
  1. deinErsterMC._alpha = 0;
  2. deinZweiterMC._alpha = 0;
eine "speed"-Variable für die beiden MC´s anlgenen:
ActionScript:
  1. speed_ersterMC = 10;
  2. speed_zweiterMC = 1;
  3. einblenden_ersterMC = true;
  4. einblenden_zweiterMC = true;
  5. //hier wird gespeichert, ob der MC gerade ein- (=true) oder ausblendet (=false) wird
  6.  
und dann in einem onEnterFrame die alpha-Werte der MC´s ändern:
ActionScript:
  1. this.onEnterFrame = function() {
  2.     if(einblenden_ersterMC) {
  3.         if((deinErsterMC._alpha + speed_ersterMC)>=100) {
  4.               deinErsterMC._alpha = 100;
  5.               einblenden_ersterMC = false;
  6.         }
  7.         else {
  8.               deinErsterMC._alpha += speed_ersterMC;
  9.         }
  10.     }
  11.     else {
  12.         if((deinErsterMC._alpha - speed_ersterMC)<=0) {
  13.               deinErsterMC._alpha = 0;
  14.               einblenden_ersterMC = true;
  15.         }
  16.         else {
  17.               deinErsterMC._alpha -= speed_ersterMC;
  18.         }
  19.     }
  20.     //für den zweiten MC äquivalent
  21. }

mit diesen speed-Werten fadet dein zweiter MC (sehr, sehr viel) langsamer als dein erster.
zum ändern der Intervalle einfach mal mit den speed-Werten rumspielen.
...und bei Fragen und/oder Problemen einfach nochmal nachfragen

gruß

P.S.: Ich hoffe das geht in die Richtung die du wolltest.

Geändert von xyz.xyz.xyz (25-10-2004 um 08:18 Uhr)
xyz.xyz.xyz ist offline   Mit Zitat antworten
Alt 25-10-2004, 09:04   #3 (permalink)
Neuer User
 
Registriert seit: Dec 2002
Beiträge: 188
Syntaxfehler im Script??

Bei diesem Script bekomme ich einen Syntaxfehler:
Ich habe ein Testfile mit meinen mc´s gemacht und habe diese erstmal so benannt wie Du um das Script zu testen.

this.onEnterFrame = function() {
if(einblenden_ersterMC) {
if((deinErsterMC._alpha + speed_ersterMC)>=100) {
deinErsterMC._alpha = 100;
einblenden_ersterMC = false;
}
else {
deinErsterMC._alpha += speed_ersterMC;
}
}
else {
if((deinErsterMC._alpha - speed_ersterMC)<=0) {
deinErsterMC._alpha = 0;
einblenden_ersterMC = true;
}
else {
deinErsterMC._alpha -= speed_ersterMC;
}
}
//für den zweiten MC äquivalent
}
kaschwei ist offline   Mit Zitat antworten
Alt 25-10-2004, 09:24   #4 (permalink)
carpe noctem
 
Registriert seit: Aug 2004
Beiträge: 114
Zitat:
Zitat von kaschwei
Bei diesem Script bekomme ich einen Syntaxfehler:
welchen Syntaxfehler bekommst du denn?

bei mir funktioniert das Script einwandfrei (siehe Anhang), allerdings habe ich auch Flash-MX,weiß nicht ob sich da zu Flash-MX-2004 hin was geändert hat.

btw.: wenn du um den Code herum [ AS] ... [ /AS] (ohne Leerzeichen!)
schreibst ist er leichter zu lesen.
gruß
Angehängte Dateien
Dateityp: zip mc_ein-ausblenden.zip (3,0 KB, 10x aufgerufen)

Geändert von xyz.xyz.xyz (25-10-2004 um 09:26 Uhr)
xyz.xyz.xyz ist offline   Mit Zitat antworten
Alt 25-10-2004, 13:23   #5 (permalink)
Neuer User
 
Registriert seit: Dec 2002
Beiträge: 188
Läuft auch mit mx2004

Habe jetzt alles durchgecheckt und die Pfade nochmal kontrolliert. Super.
Nur noch eine kleine Frage wie baue ich jetzt zwischen den unterschiedlichen Intervallen eine Pause ein, so daß der MC für ca 5 sek. nicht gleich wieder eingefadt wird?

Sorry, ich weiß ich muß noch viel lernen, Ich durchforste gerade viele Actionscript Bücher, aber das was man benötigt findet man dort sehr schlecht beschrieben.


Gruß

kaschwei
kaschwei ist offline   Mit Zitat antworten
Alt 26-10-2004, 01:15   #6 (permalink)
carpe noctem
 
Registriert seit: Aug 2004
Beiträge: 114
Zitat:
Zitat von kaschwei
Nur noch eine kleine Frage wie baue ich jetzt zwischen den unterschiedlichen Intervallen eine Pause ein, so daß der MC für ca 5 sek. nicht gleich wieder eingefadt wird?
Dafür gibt es mehrere Möglichkeiten:
1) Eine Variable die du im onEnterFrame hochzählst
2) Ein setInterval()

zu 1):
ActionScript:
  1. ...
  2. pause_ersterMC = 60; //Länge der Pause
  3. pausencounter_ersterMC = 0; //diese Variable wird während der Pause hochgezählt
  4. ...
  5. this.onEnterFrame = function() {
  6.     if(einblenden_ersterMC) {
  7.         if((deinErsterMC._alpha + speed_ersterMC)>=100) {
  8.               deinErsterMC._alpha = 100;
  9.                //Pause nach dem einblenden:
  10.               if(pausencounter_ersterMC >= pause_ersterMC) {
  11.                   //Pause ist vorbei:
  12.                   pausencounter_ersterMC = 0;
  13.                   //pausencounter wieder auf 0 setzen
  14.                                   einblenden_ersterMC = false;
  15.                   //ersten MC wieder ausblenden
  16.               }
  17. ...

zu 2):
ActionScript:
  1. ...
  2. pausieren_zweiterMC = true;
  3. //in dieser Variablen wird gespeichert, ob der zweite MC gerade pausiert oder nicht
  4. pause_zweiterMC = 5000; //Pause in Millisekunden
  5. ...
  6. function pause() {
  7.     einblenden_zweiterMC = !einblenden_zweiterMC;
  8.     //einblenden/ausblenden wird geswitcht
  9.     pausieren_zweiterMC = true;
  10.     //Pause ist vorbei => MC muss nächstes Mal wieder pausieren
  11.     clearInterval(mach_pause);
  12.     //Intervall wieder löschen
  13. }
  14. ...
  15. this.onEnterFrame = function() {
  16. ...
  17.     if(einblenden_zweiterMC) {
  18.         if((deinZweiterMC._alpha + speed_zweiterMC)>=100) {
  19.               deinZweiterMC._alpha = 100;
  20.               if(pausieren_zweiterMC) {
  21.                   //wenn pausieren == true, dann führe folgenden Code aus
  22.                   //wenn man diese Abfrage nicht einbauen würde, dann würde in jedem onEnterFrame
  23.                   //ein neues Intervall gesetzt und die Pause würde dadurch nicht mehr funktionieren
  24.                   pausieren_zweiterMC = false;
  25.                   //MC pausiert => nicht mehr in diese Bedingung da sonst s.o.
  26.                   mach_pause = setInterval(pause, pause_zweiterMC);
  27.                   //Pause
  28.               }
  29.         }
  30.         else {
  31.               deinZweiterMC._alpha += speed_zweiterMC;
  32.         }
  33.     }
  34. ..
für beide Varianten habe ich dir ein Beispiel im Anhang gemacht (ersterMC fadet mit einer "Variablen"-Pause; zweiterMC fadet mit einer "setInterval()"-Pause).

Bei Fragen/Problemen einfach noch mal nachfragen.

gruß
Angehängte Dateien
Dateityp: zip mc_ein-ausblenden_mit_pause.zip (4,3 KB, 9x aufgerufen)
xyz.xyz.xyz 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 20:19 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele