Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 29-10-2008, 13:36   #1 (permalink)
access denied
 
Benutzerbild von Gurth
 
Registriert seit: Jan 2006
Ort: Düsseldorf
Beiträge: 86
Problem mit dynamischer Variable in Funktion

Hallöle,

der hier ist einfach, glaube ich. Es will mir nur einfach nicht gelingen. Das Problem ist (denke ich zumindest) die dynamische Variable in den Klammern von function() - da wo ichs im Code kommentiert habe.

Jetzt läge die Vermutung nahe, dass man "function(this["bla"+blub]) so einfach nicht verwenden kann, ich habe aber in einem Archiv-Foreneintrag gelesen, dass es geht, bzw. da hatte jemand ein ähnliches Problem wie ich, und bekam genau diese Schreibweise als Empfehlung...bei mir klappt es allerdings nicht.

PHP-Code:

for(var 1<= 2i++)
{
    
_root.createEmptyMovieClip("pic"+i,_root.getNextHighestDepth());
    
this["myLoader"+i] = new MovieClipLoader();

    
myListener = new Object();

// Die folgende Zeile generiert Fehler "Parametername erwartet"
    
myListener.onLoadInit = function(this["pic"+i]) 
    {
        
trace("blub");
        
this["myLoader"+i].removeListener(myListener);
        
this["pic"+i]._xscale this["pic"+i]._yscale 30;
    }
    

    
this["myLoader"+i].addListener(myListener);
    
this["myLoader"+i].loadClip("image"+i+".jpg","pic"+i);


Kann mir da jemand weiterhelfen?
Dank im Voraus,
Gurth

Geändert von Gurth (29-10-2008 um 13:37 Uhr) Grund: Ein "nicht" zuviel ;)
Gurth ist offline   Mit Zitat antworten
Alt 29-10-2008, 13:58   #2 (permalink)
undefined
 
Benutzerbild von mildesign
 
Registriert seit: Jul 2001
Ort: Stuttgart
Beiträge: 1.839
1. Eine Funktionsdefinition kann sowas nicht enthalten.

Halte dich an die Signatur der onLoadInit Funktion

2. Zählvariablen (i) in Schleifen müssen zwischengespeichert werden um sie später verwenden zu können.
__________________
mfg Frank
mildesign ist offline   Mit Zitat antworten
Alt 29-10-2008, 14:01   #3 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Es reicht, wenn du allgemein den MC als Parameter übergibst und über einen Loader lädst:
PHP-Code:
//Zähler
var index:Number 0;

//Liste der Bilder
var urls:Array = new Array("image1.jpg""image2.jpg");

//Liste der MCs
var mcs:Array = new Array();
var 
len:Number urls.length;

//leere MCs erzeugen
for(var i=1;i<=len;i++){
   
this.mcs.push(this.createEmptyMovieClip("pic"+i,i));
   
this["pic"+i]._x = (i*100);//evtl. nebeneinander positionieren
   
this["pic"+i].ID i;//Zähler merken
   
}

//erstes Bild laden und anzeigen
var mclListener:Object = new Object();
var 
mcLoader:MovieClipLoader = new MovieClipLoader();
mcLoader.addListener(mclListener);
mcLoader.loadClip(urls[index], mcs[index]);




//fertiggeladen
mclListener.onLoadInit = function(mc:MovieClip) {
   
trace("fertig, mc="+mc);
   
mc._xscale mc._yscale 30;
    
   
index++;
   if (
index len) {//sind noch weitere zu laden?
       
mcLoader.loadClip(urls[index], mcs[index]);
   }
}

this.stop(); 
  Mit Zitat antworten
Alt 29-10-2008, 16:34   #4 (permalink)
access denied
 
Benutzerbild von Gurth
 
Registriert seit: Jan 2006
Ort: Düsseldorf
Beiträge: 86
Question

Danke ihr zwei für die Antworten! Wenn ich gleich von der Arbeit nach Hause komme, werde ich den Ansatz von agedoubleju mal durcharbeiten.

Zwei Fragen habe ich aber jetzt schon, zum allgemeinen Verständnis:

1)
"Zählvariablen (i) in Schleifen müssen zwischengespeichert werden um sie später verwenden zu können."

- Das verstehe ich nicht. Wenn ich das Script

PHP-Code:
for(var i=1;i<=10,i++)
{
   
trace(i);

ausführe, bekomme ich 1,2,3,4,5,6,7,8,9,10 ausgegeben. Das wirkt auf mich, als könnte ich i verwenden, ohne i zwischenzuspeichern. Verständnisproblem meinerseits?

und 2)
PHP-Code:
this["pic"+i].ID i;//Zähler merken 
- Steht das im Zusammenhang mit der o.g. Problematik bezgl. Zählervariablen zwischenspeichern?

Bitte bringt Licht in mein Dunkel, ich will das verstehen

LG,
Gurth
Gurth ist offline   Mit Zitat antworten
Alt 29-10-2008, 16:51   #5 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Zitat:
Steht das im Zusammenhang mit der o.g. Problematik bezgl. Zählervariablen zwischenspeichern?
Ja. Wenn du in einer for-Schleife in einem MC auf den Zähler zugreifen willst, solltest du dir den Zähler in einer Objektvariablen merken.
  Mit Zitat antworten
Alt 29-10-2008, 19:27   #6 (permalink)
access denied
 
Benutzerbild von Gurth
 
Registriert seit: Jan 2006
Ort: Düsseldorf
Beiträge: 86
ok, aber was ist .ID ? Konnte nichts darüber finden...
Gurth ist offline   Mit Zitat antworten
Alt 29-10-2008, 20:44   #7 (permalink)
.
 
Registriert seit: May 2003
Ort: bayern
Beiträge: 1.117
du kannst auch "wurstsalat" oder "schabrackenschakal" schreiben ist aber mehr schreibarbeit.
__________________
[mooseMash]
mooseMash ist offline   Mit Zitat antworten
Alt 30-10-2008, 12:23   #8 (permalink)
access denied
 
Benutzerbild von Gurth
 
Registriert seit: Jan 2006
Ort: Düsseldorf
Beiträge: 86
Ok, hab ich verstanden.

Eine Frage:

PHP-Code:
mclListener.onLoadInit = function(mc:MovieClip) {
   
trace("fertig, mc="+mc);
   
mc._xscale mc._yscale 30
Wieso kann man hier einfach "mc" übergeben? Wieso muss hier nicht der Name des aktuellen Bildes übergeben werden??
Gurth ist offline   Mit Zitat antworten
Alt 30-10-2008, 14:01   #9 (permalink)
.
 
Registriert seit: May 2003
Ort: bayern
Beiträge: 1.117
PHP-Code:
Der Wert für mc identifiziert den Movieclipfür den dieser Aufruf erfolgt
Dieser Parameter ist nützlichwenn mit der gleichen Gruppe von Listenern mehrere Dateien geladen
werden

so steht es in der Hilfe.
__________________
[mooseMash]
mooseMash ist offline   Mit Zitat antworten
Alt 30-10-2008, 14:13   #10 (permalink)
access denied
 
Benutzerbild von Gurth
 
Registriert seit: Jan 2006
Ort: Düsseldorf
Beiträge: 86
d.h., auch wenn man dort "mc" oder "target_mc" oder "schabrackenschakal_mc einsetzt, wird trotzdem automatisch der mc angesprochen, der aktuell im Loader.loadClip geladen wird?
Gurth ist offline   Mit Zitat antworten
Alt 30-10-2008, 14:16   #11 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Davon sprechen wir ja die ganze Zeit. Ist nur ein Übergabeparameter...
  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 05:07 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele