Arrays und Pfadangaben mit _root[displayMCPath].tudiesunddas();

MontyBurns

Mitglied
Hallo allesamt,

Man stelle sich viele kleine MC's (quadratisch) - aneinandergereiht zu einer Art Display -
vor.

Etwa so:
[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]
[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]
[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]
[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]
[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]

(Für alle, die lieber die .fla sehen: die URL zur File steht ganz Unten)

Auf diesem "Display" soll im Endeffekt (dafür sind die arrays a0-a25 verantwortlich) ein Text erkennbar werden.
Die MC-quadrate können entweder hell od dunkel sein (3 Keyframes - 2 Shape-Tweens).
Die MC-quadrate liegen in einem anderen MC ("displayMC").

Im ersten KeyFrame im _root steht folgendes Script:

Code:
stop();
a0 = new Array(1, 1, 1, 0, 0);
a1 = new Array(1, 0, 1, 0, 0);
a2 = new Array(1, 1, 1, 1, 1);
a3 = new Array(0, 0, 0, 0, 0);
a4 = new Array(1, 1, 1, 0, 1);
a5 = new Array(0, 0, 0, 0, 0);
a6 = new Array(1, 1, 1, 0, 0);
a7 = new Array(1, 0, 1, 0, 0);
a8 = new Array(1, 1, 1, 0, 0);
a9 = new Array(1, 0, 0, 0, 0);
a10 = new Array(0, 0, 0, 0, 0);
a11 = new Array(1, 1, 1, 1, 1);
a12 = new Array(1, 0, 0, 0, 0);
a13 = new Array(0, 0, 0, 0, 0);
a14 = new Array(0, 0, 0, 0, 0);
a15 = new Array(1, 1, 1, 1, 1);
a16 = new Array(1, 0, 1, 0, 1);
a17 = new Array(1, 1, 1, 0, 1);
a18 = new Array(0, 0, 0, 0, 0);
a19 = new Array(1, 1, 1, 1, 1);
a20 = new Array(1, 0, 1, 0, 1);
a21 = new Array(1, 1, 1, 0, 1);
a22 = new Array(0, 0, 0, 0, 0);
a23 = new Array(0, 0, 0, 0, 1);
a24 = new Array(1, 1, 1, 0, 1);
a25 = new Array(0, 0, 0, 1, 1);
_global.clipctrl = function(displayMCPath, mcN, arrayN) {
	for (j=0; j<5; j++) {
		for (i=0; i<26; i++) {
			if (arrayN[j] == 1) {
				_root[displayMCPath][mcN+i+j].gotoAndPlay(1);
			} else if (arrayN[j] == 0) {
				_root[displayMCPath][mcN+i+j].gotoAndPlay(6);
			}
		}
	}
};
for (k=0; k<26; k++) {
	x = "a"+k;
	this.clipctrl("displayMC", "a", x);
}
trace("a0[2]= "+a0[2]);

Wo mein Problem liegt, weiss ich irgendwie nicht .. ich probier da jetzt schon ewig rum.
Ich schätze, dass das mit den Arrays zwar , aber die Zeilen

Code:
_root[displayMCPath][mcN+i+j].gotoAndPlay(1);
_root[displayMCPath][mcN+i+j].gotoAndPlay(6);

geändert werden müssten .. irgendwo ist da der Hund drin, und ich find ihn einfach nicht.
Wäre sehr dankbar für jede Hilfe, die ich kriegen kann.

Die File findet ihr auf
http://www.dial667.de/arraydisplay.fla
Wer noch wissen will, was ich schon alles angestellt habe, mit der Datei, kann ein früheres Exemplar unter
http://www.dial667.de/arrayinsanity.fla
begutachten.

greetz
MontyB
 
Zuletzt bearbeitet:
Hi,

ich weiss zwar nicht genau, was du mit dem Konstrukt bezwecken willst, aber das dürfte dich weiterbringen:
PHP:
stop ();
a0 = new Array (1, 1, 1, 0, 0);
a1 = new Array (1, 0, 1, 0, 0);
a2 = new Array (1, 1, 1, 1, 1);
a3 = new Array (0, 0, 0, 0, 0);
a4 = new Array (1, 1, 1, 0, 1);
a5 = new Array (0, 0, 0, 0, 0);
a6 = new Array (1, 1, 1, 0, 0);
a7 = new Array (1, 0, 1, 0, 0);
a8 = new Array (1, 1, 1, 0, 0);
a9 = new Array (1, 0, 0, 0, 0);
a10 = new Array (0, 0, 0, 0, 0);
a11 = new Array (1, 1, 1, 1, 1);
a12 = new Array (1, 0, 0, 0, 0);
a13 = new Array (0, 0, 0, 0, 0);
a14 = new Array (0, 0, 0, 0, 0);
a15 = new Array (1, 1, 1, 1, 1);
a16 = new Array (1, 0, 1, 0, 1);
a17 = new Array (1, 1, 1, 0, 1);
a18 = new Array (0, 0, 0, 0, 0);
a19 = new Array (1, 1, 1, 1, 1);
a20 = new Array (1, 0, 1, 0, 1);
a21 = new Array (1, 1, 1, 0, 1);
a22 = new Array (0, 0, 0, 0, 0);
a23 = new Array (0, 0, 0, 0, 1);
a24 = new Array (1, 1, 1, 0, 1);
a25 = new Array (0, 0, 0, 1, 1);
clipctrl = function (displayMCPath, mcN, arrayN)
{
	trace ("CLIPCONTROL / " + displayMCPath + "/" + mcN + "/" + arrayN);
	for (j = 0; j < 5; j++)
	{
		for (i = 0; i < 26; i++)
		{
			ZielArray = _root[arrayN];
			if (ZielArray[j] == 1)
			{
				trace ("Farbänderung");
				_root[displayMCPath][mcN + i + j].gotoAndStop (1);
			}
			else if (ZielArray[j] == 0)
			{
				trace ("Farbe konstant");
				_root[displayMCPath][mcN + i + j].gotoAndStop (6);
			}
		}
	}
};
for (k = 0; k < 26; k++)
{
	x = "a" + k;
	clipctrl ("displayMC", "a", x);
	trace ("x= " + x);
}
trace ("a0[2]= " + a0[2]);

Seltsam finde ich noch den Funktionsaufruf per Schleife , du solltest bedenken, das das nahezu gleichzeitig 26 mal die Funktion aufruft, das kann nicht toll sein.
Ausserdem war dein display MC in einem loopenden tween, den ich ausgestoppt habe, ansonsten übersteuert der tween.

Grüsse
B
 

Anhänge

  • arraydisplay.zip
    13,9 KB · Aufrufe: 20
Vielen Dank für die Antwort .. sorry, dass ich so lang nix geschrieben habe, aber mir is über Weihnachten mein Monitor verreckt. Ich werd mir das Script mal genauer ansehen und bin mal gespannt, wie ich zurechtkomme. Ich schreib auf alle Fälle nochmal, was letztendlich daraus geworden ist.

Greetz
MontyB
 
Also .. da klappt irgendwie noch immer gar nix so recht.
Es sind - statt schrift ("dial667" sollte da stehen) nur die unteren 3 zeilen komplett dunkel vorzufinden. Ich komm einfach nicht drauf, was da falsch sein könnte.

Wenn du da nochmal ein Auge drauf werfen könntest, wär ich dir dankbar.

greetz
Monty
 
Hrmpf,

hab ich dir was davon erzählt, das der Funktionsaufruf über eine Schleife falsch ist oder hab ich das nicht ?

Grüsse
B
 

Anhänge

  • arraydisplay.zip
    6,9 KB · Aufrufe: 26
Hi Basileus ..

merci nochmal.
Sorry .. hab mich echt angestellt, wie der 1. Mensch. Muss gestehen, dass es vielleicht für den allerersten Versuch mit Arrays und Schleifen in Flash, ein etwas zu komplexes Ding war.
Manchmal gehen eben die Pferde mit mir durch, wenn ich was neues ausprobieren will und mir prompt eine Menge Kram einfällt, was man wohl alles damit basteln könnte, wenn man's könnte.
;)

greetz
MontyBurns
 
Zurück