Callback oder was ähnliches unter as1-FP6

Mayday171

Erfahrenes Mitglied
Hallo,

ich rufe in einer For-Schleife je nach Bedingung die setNewData Methode auf welche in verschiedenen MCs liegen. In der Else wird dann irgendwann nocheinmal die setNewData aufgerufen aber in einem MC in dem sie schonmal aufgerufen wurde (nur mit anderen Parametern)

Bsp für einen Durchlauf

assArr[0].setNewData(20);
assArr[1].setNewData(24);
assArr[2].setNewData(22);
assArr[3].setNewData(42);

assArr[2].setNewData(23,2);


Leider ist irgendwie nur der letzte Aufruf immer grültig bzw. die Parameter werden irgendwie vieleicht überschrieben.

PHP:
function updateChart() {
	var data = stringValue.split(';');
	for (n=0; n < data.length; n++) {
		if (data[n].length > 1) {
			d = data[n].split('=');
			_item = "";
			_item = d[0];
			_value = d[1];
			if(assArray[_item].multi==true) {
				nextIndex=assArray[_item].index2;
				inIndex=assArray[_item].index1;
			}
			
			//getURL("javascript:alert('"+assArray[_item].multi+" "+_item+"')");
			
			if(_item!=nextIndex) {
				assArray[_item].setNewData(_value);
				//getURL("javascript:alert('"+_item+"')");
			}
			else {
				assArray[inIndex].setNewData(_value,2);
			}
		}
	}	
}

Kann ich um zu überprüfen ob die MEthode schon fertig durchlaufen bzw. ausgeführt ist eine Callback setzten oder sowas ähnliches unter as1 und FlashPlayer 6

Oder kann ich den Fehler irgendwie anders ausmertzen ?


Danke

MfG
 
Hi,

was für Werte bekommen denn die Variablen "_item" und "nextIndex" (anhand der Bezeichner würde ich auf einen Typ-Konflikt tippen, wenn _item z.B. einen String und "nextIndex" eine Zahl enthält).

Was macht die Methode "setNewData" genau?

Ohne die Funktion der Methoden und die Quelldaten zu kennen, lässt sich hier nur raten.

Gruß
.
 
Einen Typenkonflikt kann ich ausschließen, weil ich die Position des Methodenaufrufes schon getauscht habe. Es wird nur der letzte Aufruf durchgeführt.

hier ist die SetNewData()

PHP:
chartContainer.prototype.setNewData = function(strValue,indexValue) {
    //This method helps you update the chart with the passed value in parameter
    //Set the data
    this.target_mc.value = strValue;
	if(indexValue==undefined) {
		this.target_mc.index = 1;
	}
	else {
		this.target_mc.index = indexValue;
	}
	//getURL("javascript:alert('"+this.multi+"')");
    //Play
    this.target_mc.gotoAndPlay("NewDataHandler");
};

diese setzt Variablen im target_mc und führt nach dem Sprung in das Lable eine weitere Funktion auf.

Ich denke es könnte auch daran liegen das er einfach die Variablen überschreibt

Danke

MfG
 
Hi,

na ja, ist klar: die Methode überschreibt den Wert von "target_mc.index" und lässt den "target_mc" zu einem bestimmten Frame springen.

Rufst Du die Methode zweimal für ein und den selben MC auf, so gelten danach natürlich nur die Werte des zweiten Aufrufs.

Da ich nicht weiß, was das Ding denn nun konkret machen soll, kann ich den Code auch nicht sinnvoll debuggen. Bist Du denn z.B. sicher, dass
Code:
assArray[_item]
und
Code:
assArray[inIndex]
nicht auf das selbe Objekt zeigen?

Gruß
.
 
Zurück