Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 23-02-2005, 21:15   #1 (permalink)
Neuer User
 
Registriert seit: Feb 2002
Beiträge: 41
Aus selben Frame mit Zeitverzögerung mehrere Funktionen aufrufen?

Hallo,

ich habe auf Frame 3 folgendes Script erstellt:

Zitat:
MovieClip.prototype.scaleIn = function () {
this.onEnterFrame = function () {
if (this._xscale <= 95) {
this._xscale += 5;
this._yscale += 5;
}
else if (this._xscale == 100) {delete this.onEnterFrame};
}
}
Funktioniert auch super über folgenden Aufrufe aus Frame 5:

Zitat:
probeBg1.scaleIn ();
probeBg2.scaleIn ();
probeBg3.scaleIn ();
probeBg4.scaleIn ();
probeBg5.scaleIn ();
probeBg6.scaleIn ();
probeBg7.scaleIn ();
probeBg8.scaleIn ();
probeBg9.scaleIn ();
Ich möchte allerdings eine Pause zwischen dem Einskalieren der Clips machen und nicht alle gleichzeitig reinhauen, also erst probeBg1 - 2 sec. Pause - probeBg2 - Pause - etc.

Habe schon verschiedene setInterval Varianten durchprobiert, aber keine hat funktioniert. Geht das überhaupt, mit Pause einfaden, wenn die Fumktionsaufrufe in einem Frame liegen? Oder muss ich die Aufrufe auf verschiedene Frames nacheinander verteilen? Dann kann ich ja gleich die enbtsprechenden Frames auswählen, das würde ich gerne vermeiden und alles per AS lösen. Hat jemand eine Lösungsidee im Ansatz für mich?

Das Funktionsscript oben würde ich auch ungern komplexer machen.

Danke,

Frank
g0l3m ist offline   Mit Zitat antworten
Alt 23-02-2005, 21:35   #2 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 644
So sollte es klappen (wenn deine MC's auf _root liegen)
ActionScript:
  1. function McsScaleIn(pF,pL,pName){
  2.     var i = pF;
  3.     var j = pL;
  4.     var time = setInterval(function() {
  5.         if(i!=j+1){
  6.             _root[pName+i].scaleIn();
  7.             i++;
  8.         }else{
  9.             clearInterval(time);
  10.         }
  11.     },20);
  12. }
  13. McsScaleIn(1,9,"probeBg");
Einfach dann in deinem Frame wo du sie vergrößern willst die function setzen, Zeitspanne anpassen und fertig.

Gruss Danny

Geändert von jonny-noob (23-02-2005 um 21:42 Uhr)
jonny-noob ist offline   Mit Zitat antworten
Alt 23-02-2005, 22:06   #3 (permalink)
Neuer User
 
Registriert seit: Feb 2002
Beiträge: 41
Hmm, danke erstmal.

Ja, die Clips liegen im _root, werden mit attachMovie auf die Bühne geholt. Aber mit Deiner Funktion funktioniert es noch nicht. Kein einziger Clip wird hochskaliert, irgendwie tut sich gar nix. Läuft es bei Dir?

Das Ausgabefenster zeigt folgendes:

PHP-Code:
**Fehler** Szene=Szene 1Ebene=as, Bild=5:Zeile 17Syntaxfehler.
     ****var 
pF

**
Fehler** Szene=Szene 1Ebene=as, Bild=5:Zeile 18Syntaxfehler.
     ****var 
pL

Anzahl der ActionScript-Fehler2      Gemeldete Fehler
Versteh ich nicht, wieso Fehler bei Variablendeklaration???
Werd morgen nochmal weiterprobieren, erstmal schlafen.

Frank

Geändert von g0l3m (23-02-2005 um 22:09 Uhr)
g0l3m ist offline   Mit Zitat antworten
Alt 23-02-2005, 22:09   #4 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 644
Doch es klapt, dein Prototype ist falsch weil die _xscale am anfang immer == 100 ist, also kann sie ja garnicht <=95 sein!

Gruss Danny
jonny-noob ist offline   Mit Zitat antworten
Alt 23-02-2005, 22:10   #5 (permalink)
All-rounder
 
Benutzerbild von thebiz
 
Registriert seit: Mar 2004
Ort: Bayerische Rhön
Beiträge: 2.507
Kannste auch so machen:
ActionScript:
  1. MovieClip.prototype.scaleIn = function() {
  2.     this.onEnterFrame = function() {
  3.         if (this._xscale <= 95) {
  4.             this._xscale += 5;
  5.             this._yscale += 5;
  6.         } else if (this._xscale == 100) {
  7.             delete this.onEnterFrame;
  8.         }
  9.     };
  10. };
  11.  
  12. clipAnzahl = 5;
  13.  
  14. function scale() {
  15.     i == undefined ? i = 1 : (++i < clipAnzahl ? null : clearInterval(mI));
  16.     _root["probeBg" + i].scaleIn();
  17. }
  18. mI = setInterval(scale, 2000);
__________________

--------------------------------
Ich klicke, ergo bin ich. (me)
--------------------------------
thebiz ist offline   Mit Zitat antworten
Alt 23-02-2005, 22:10   #6 (permalink)
Neuer User
 
Registriert seit: Feb 2002
Beiträge: 41
Die _xscale setz ich vorher beim attachen auf 0!

Wie gesagt, der Prototype funzt gut

Frank
g0l3m ist offline   Mit Zitat antworten
Alt 23-02-2005, 22:13   #7 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 644
Bei mir funktioniert meine Funktion sauber!
Komisch...
jonny-noob ist offline   Mit Zitat antworten
Alt 23-02-2005, 22:14   #8 (permalink)
Neuer User
 
Registriert seit: Feb 2002
Beiträge: 41
Funktioniert mit:

PHP-Code:
clipAnzahl 5;

function 
scale() {== undefined : (++clipAnzahl null clearInterval(mI));_root["probeBg" i].scaleIn();}
mI setInterval(scale2000); 
Aber nur, wenn die Zeilenumbrüche raus sind. Wieso das?
Danke Danke

Frank

Geändert von g0l3m (23-02-2005 um 22:21 Uhr)
g0l3m ist offline   Mit Zitat antworten
Alt 23-02-2005, 22:18   #9 (permalink)
All-rounder
 
Benutzerbild von thebiz
 
Registriert seit: Mar 2004
Ort: Bayerische Rhön
Beiträge: 2.507
Was für Zeilenumbrüche?
Bei mir funktioniert der Code so wie ich ihn geposted habe.
__________________

--------------------------------
Ich klicke, ergo bin ich. (me)
--------------------------------
thebiz ist offline   Mit Zitat antworten
Alt 23-02-2005, 22:20   #10 (permalink)
Neuer User
 
Registriert seit: Feb 2002
Beiträge: 41
Wenn ich den Code so aus dem Browser übernehme, geht es nicht. Ich muss alles in eine Zeile tun, wie von mir gepostet. Dann gehts.

thebiz, könntest Du evtl. die komplizierte Zeile in längerer Fassung aufschreiben? Also das ein Anfänger das versteht? Ich habe keine Ahnung z.B vom Symbol "?". Der Code ist ziemlich optimiert oder?

Frank
g0l3m ist offline   Mit Zitat antworten
Alt 23-02-2005, 22:27   #11 (permalink)
All-rounder
 
Benutzerbild von thebiz
 
Registriert seit: Mar 2004
Ort: Bayerische Rhön
Beiträge: 2.507
ActionScript:
  1. function scale() {
  2.     if (i == undefined) {
  3.         i = 0;
  4.     } else if (++i <= clipAnzahl) {
  5.         _root["probeBg" + i].scaleIn();
  6.     } else {
  7.         clearInterval(mI);
  8.     }
  9. }
  10. mI = setInterval(scale, 500);
__________________

--------------------------------
Ich klicke, ergo bin ich. (me)
--------------------------------
thebiz ist offline   Mit Zitat antworten
Alt 23-02-2005, 22:28   #12 (permalink)
Neuer User
 
Registriert seit: Feb 2002
Beiträge: 41
Danke John

Das versteh ich Pfosten sogar

Frank
g0l3m ist offline   Mit Zitat antworten
Alt 23-02-2005, 22:30   #13 (permalink)
All-rounder
 
Benutzerbild von thebiz
 
Registriert seit: Mar 2004
Ort: Bayerische Rhön
Beiträge: 2.507
Bitte.
Und sage nicht solche Dinge über Dich,
wie Pfosten usw.
Irgendwann glaubst Du das nämlich.
__________________

--------------------------------
Ich klicke, ergo bin ich. (me)
--------------------------------
thebiz 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 15:48 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele