Verschiedene Variablen mit gleichem MC

Seniler Zirkusaffe

Grünschnabel
Hallo,

erstmal Sorry für den Titel, aber mir wollte nichts passenderes einfallen.
Ich hab nun folgendes Problem.

Mein Flash-Filmsoll 6x32 Movieclips beinhalten, die alle aus einen Schalter bestehen, der eine bestimmte, immer andere, Variable auf 1 oder 0 setzt. Nun bin ich gerade dabei, 191 Kopien meines Ausgangs-MCs zu kopieren, nur um die Variablenbezeichnung in jedem einzelnen zu ändern...was natürlich unheimlich müßig und vor allem platzkostend ist, weshalb ich fragen wollte, ob das nicht einfacher geht?!

Das einzige was man bei gleichen MCs individuell ändern kann, ist ja die Instanz, aber ich finde nichts, das sich das ganze auf die Variablen auswirkt. Oder gibts noch ne andere Möglichkeit?

Gruß
Der Zirkusaffe
 
Zuletzt bearbeitet:
HI,

Du kannst den MovieClip-Instanzen Variablen von aussen mitgeben:
PHP:
clip1.variable = 1;
clip2.variable = 2;
clip3.variable = 3;
und diese dann beim Klick oder so auf der Instanz verwenden:
PHP:
on(press) {
    _root.machwas(this.variable);
}

Du kannst die Variablen aber auch bei onLoad auf die einzelnen Instanzen schreiben:
PHP:
onClipEvent(load) {
    this.variable = 5;
}

on(press) {
    _root.machwas(this.variable);
}
Ich würde Möglichkeit 1 bevorzugen, Da es weniger Schreibarbeit bedeutet und Du alle Clips auf einmal im Blick hast. Ausserdem kannst Du die Clips u.U. in einer Schleife durchlaufen, wenn sie (und die Variablen) fortlaufend numeriert sind:
PHP:
var arr = new Array(1, 5, 17, 931, 0, 5, 12);
for (var i=1; i<=clip_anzahl; i++) {
    this["clip" + i].variable = arr[i];
}

Gruß
.
 
Hallo und danke erstmal,

leider versteh ichs nicht so ganz...wo soll ich die Dinger reinschreiben?

Ich fang mal an, so wie ichs verstanden hab:

Code:
 clip1.variable = 1;

Wenn das eine Art Deklaration ist, wie ichs verstanden hab, liegt das ganze also im ersten AS-Frame des Films?
Dann wird das clip1 der Instanzname sein, das variable die Variablenbezeichung und
die 1 der Wert.

Code:
 on(press) { 
  _root.machwas(this.variable);
}

Das wird dann im AS des Buttons liegen?! Am meisten irritiert mich hier das ".machwas.
Ist das eine Funktion oder wofür steht das?

Danke und Gruß
Der Zirkusaffe
 
Am meisten irritiert mich hier das ".machwas
Ja, das sollte eine Funktion sein. Ich bin davon ausgegangen, Du weist, was Du mit Deinen Variablen und MCs machst, daher habe ich als Beispiel einfach mal einen Funktionsaufruf genommen.

Also: Was genau willst Du erreichen bzw. was machen Deine MovieClips bisher? Wenn ich weiß, wo Du stehst, kann ich Dir auch besser helfen.

Gruß
.
 
Da hast du wohl recht!

Also ich habe einen Movieclip mit 2 Frames in dem jeweils 2 Buttons drin liegen:

Frame1:
Code:
on(release)
{
	gotoAndStop(2);
	_root.b1=1;
}
Frame2:
Code:
on(release)
{
	gotoAndStop(1);
	_root.b1=0;
}

Also ein simpler Ein/Aus-Schalter.
Nun brauche ich noch ca. 191 davon, die alle eine andere Variable (b2-32 und 5 weitere "Ziffer+1-32") ein- und ausschalten sollen.

Was passieren soll...

Betätigt man einen Start/Stop-Button, wird eine Zeitleiste (32 Frames, die als 32 aufeinanderfolgende "Dioden" dargestellt sind) in Bewegung gesetzt.

In der Endversion soll dann unter jeder der 32 "Dioden" jeweils ein Schalter sein, den man an/aus stellen kann und der eine Variable an/ausstellt. (siehe oben)

Am Ende soll es jedoch nicht nur eine Zeile (also 32) Schalter geben, sondern 6 Zeilen (also 192 Schalter)

Die Zeitleiste fragt nun in jedem ihrer 32 "Schritte" ab, ob die Variablen die in den Schaltern unter ihr stehen, an oder aus sind und spielt dementsprechend einen Sound (oder nicht) Dabei steht jede Reihe der Schalter für einen Sound...
(zB.
Reihe1: Variable: b1-b32->Sound: Bassdrum
Reihe2: Variable: s1-s32->Sound: Snare etc.)

Ich hoffe das ist ausführlich genug; ich wollt ja anhängen, aber es war zu groß (800kb) und ich hab derzeit keine Möglichekt es woanders hochzuladen...sorry.

Gruß
Der Zirkusaffe
 
Hi,

In diesem Fall kannst Du auf von den Schaltflächen aus auf die "übergebenen" Variablen zugreifen:
PHP:
on(release)
{
	gotoAndStop(2);
	_root[variable] = 1;
}

on(release)
{
	gotoAndStop(1);
	_root[variable] = 0;
}
Den Clips übergibst Du dann die Variable:
PHP:
mc_1.variable = "b1";
mc_2.variable = "b2";
// usw.

Gruß
.
 
Zurück