Array elemente in Tabellenform bringen?

MenaceMan

Grünschnabel
Magnetwörter Ecard!

Hi Jungs und Mädels!

In Kurz.

Kann mir einer sagen wie ich eine Tabellenform von den MC Instanzen die hier erzeugt werden mache? Ich steh nicht nur aufm schlauch. Ich versuche es schon seit 3 Tagen. Wäre echt nett. Die Koordinaten der einzelnen MCs nach dem Draggen durch den User müssen danach an PHP gesendet werden. Um sie dann in eine reader.swf wieder einzulesen. So das man die Nachricht die der Sender zusammen geklebt hat
auch beim Empfänger so angezeigt werden kann.

PHP:
for (j=0; j<items.length; j++) {
name = items[j]+j;
_root.attachmovie(items[j], name, j+1);
_root[name]._x = (j+1)*100;
1 _root[name]._y = (j+1)*100;
_root[name+"x"] = _root[name]._x;
_root[name+"y"] = _root[name]._y;
}


Tabellenform:

- - - - = - - - - - // "=" ist jetzt ein längerer MC
- - - - - - - - - -
- - - - - - - - - -
- - - - - - - - - -

Und hier die lange Version:

Ich brauche dringend hilfe! Ich sitze seit 3 Tagen und Nächten ( mit viel zu wenig Schlaf) an einer Ecard die auf dem Kühlschrank Magnetwörterspiel basiert. Diese Gute Morgen Nachrichten, um seine Mitbewohner aufzumuntern.
Rechts sind die Wörter Links ist der Kühlschrank. Nun will ich die Wörter auf den "Kühlschrank" packen. Dort sollen die Koordinaten jedes einzelnen MCs gesettet werden.

Also ich mache es nach diesem Tutorial hier : Ist noch Flash 5!Das hab ich auch hier (aufm Mac)
Ich hab aber Flash 8 zur Verfügung in der Fachhochschule. Da konnte mir auch keiner helfen bist jetzt.

http://www.actionscript.org/resources/articles/108/1/E-Cards-and-other-Dynamic-Systems/Page1.html


Und nun komme ich nicht weiter.

Das Problem ist nun folgendes. Wenn ich NICHT ein Array mache und die items dort rein pushe (z.B: _root.items.push("ich") UND sie danach durch diese For Schleife jage,

PHP:
for (j=0; j<items.length; j++) {
name = items[j]+j;
_root.attachmovie(items[j], name, j+1);
_root[name]._x = (j+1)*100;
1 _root[name]._y = (j+1)*100;
_root[name+"x"] = _root[name]._x;
_root[name+"y"] = _root[name]._y;
}
dann bekomme ich keine ordentliche txt Datei in der die Koordinaten gespeichert werden.

Jetzt fragt ihr euch? " Geht doch so!

Ja aber ich bin zu dumm die aus dem Array erzeugten MC Instanzen in eine Tabellenform zu bringen ( 10 Spalten und so viele Zeilen bis alle "Wörter" angezeigt werden.
- - - - = - - - - - // "=" ist jetzt ein längerer MC
- - - - - - - - - -
- - - - - - - - - -
- - - - - - - - - -

Die Tabelle soll sich dann Rechts befinden. Zustätzlich ist noch das Problem dabei, das ich unterschiedlich lange MCs habe.
"ich" ist kürzer als "Hausfrau".

Ich hoffe jemand von euch weiss wie ich diese Anordnung hinbekomme.
Oder ihr wisst wie ich die Koordinaten Speichern und an php übergeben kann ohne durch den Array und diese AttachMovie Geschichte durch zu müssen.
( Dann platziere ich meine MCS "Wörter" auf der Bühne wie ich will und es werden

1.Trotzdem die Koordinaten gespeichert und an PHP weitergegeben.
2.Man kann wieder die Koordinaten in eine Reader.swf reinladen.


Im Anhang meine .Fla und ich hab nochmal die Tutorialdateien drangehängt von dem Tutorial hingehängt.
Vielen Dank.
 

Anhänge

  • Meine Fla Magnetwörter.zip
    66,2 KB · Aufrufe: 19
  • ecard(2).zip
    14,2 KB · Aufrufe: 14
Hi,

mir ist nicht ganz klar, was Du meinst, aber vielleicht ist es etwas in der Art:
Code:
item_mc = new Array(); // für die MovieClips

var mw = 0; // maximale Breite und Höhe feststellen
var mh = 0; 

var cols = 4; // Anzahl Spalten

var gap = 5; // Abstand

for (var i=0; i<item.length; i++) { // Clips in Array schreiben
	item_mc[i] = this.attachMovie(item[i], "item" + i, i);
	if (item_mc[i]._width > mw) mw = item_mc[i]._width;
	if (item_mc[i]._height > mh) mh = item_mc[i]._height;
}

var x = 0;
var y = 0;

for (var i=0; i<item_mc.length; i++) { // Anordnen
	var obj = item_mc[i];
	obj._x = x * (mw + gap);
	obj._y = y * (mh + gap);
	x ++;
	if (x >= cols) {
		x = 0;
		y ++;
	}
}

Gruß
.
 
Hi,

Vielen dank für deine Antwort.

Also ich habe vorher schon einen Array defininiert.
Und dort items reingepusht.
Nun möchte ich die sachen die ich dort reingehaun hab auslesen, und tabellenförmig darstellen.
Durch das benutzen von attachmovie. ( hier werden bei mir im Code Instanzen jedes MCS erstellt, welches ich vorher in das Array tue. Außerdem ist nur die Ausgabenform nicht richtig in diesem Code)

PHP:
for (j=0; j<items.length; j++) {
name = items[j]+j;
_root.attachmovie(items[j], name, j+1);
_root[name]._x = (j+1)*100;
1 _root[name]._y = (j+1)*100;
_root[name+"x"] = _root[name]._x;
_root[name+"y"] = _root[name]._y;
}

Ausgabe hier ist von oben links schräg nach unten rechts.

gewünscht:

- - - - = - - - - - // "=" ist jetzt ein längerer MC
- - - - - - - - - -
- - - - - - - - - -
- - - - - - - - - -

Dein code schreibt ja nen neuen Array und ordnet sie im Array selber an.
Gibt sie aber nicht aus? Oder seh ich das falsch?
 
Hi,

nein, mein Code macht zunächst das selbe wie Deiner: Er geht alle Elemente im Array durch (ich habe es hier nur "item" genannt, da "items" in Flash ein reserviertes Wort ist) und erstellt aus jedem Item einen MovieClip.

Die Besonderheit ab hier ist die, dass auch die instanzierten MovieClips in einem Array abgelegt werden, damit man sie bequem in einer Schleife durchlaufen kann (das ginge zwar auch ohne Array, aber nicht ganz so elegant).

Während die Clips per attachMovie instanziert werden, wird von jedem die Breite und Höhe geprüft, wobei die Breite des breitesten Clips und die Höhe des höhesten Clips in den Variablen "mw" und "mh" gespeichert werden (wir müssen ja wissen, in welchem Abstand die Clips angeordnet werden sollen).

Nun werden in einer zweiten Schleife alle Clips durchlaufen, und angeordnet: dabei werden für jeden Clip die Werte "mw" bzw. "mh" mit den Zählern "x" und "y" multipliziert, um den Clip zu positionieren. Bei jedem Durchlauf wird die Spaltenvariable "x" inkrementiert, bis sie die Anzahl vorher festgelegter Spalten (cols) überschreitet. Ist das der Fall, wird "x" wieder auf 0 gesetzt und "y" inkrementiert.

Mit diesem Code sollten alle instanzierten MovieClips in einem gleichmäßigen Raster angeordnet werden, bei dem Du die Anzahl Spalten mit der Variable "cols" festlegen kannst. Die Variable "gap" bestimmt den Abstand (Leerraum) zwischen den MovieClips.

Gruß
.
 
Ich krieg das mit deinem Code nicht gebacken.
Also ich habe weder Instanzen im Film. Noch habe ich Koordinaten, die beim Buttonclick weitergegeben werden. Bin ratlos. Kannst du dir die Fla mal anschaun?
Das wäre super nett.

Also Aufbau ist: ( zum näherern verständniss)

Kühlschrank. Wörter.
Writer.Fla
Wörter auf Kühlschrank packen. Position speichern. An Php schicken. Und in Txt Speichern.
Reader.swf
Wörter so anordnen, wie sie der Absender verschickt hat.
 
Hi,

1. alles, was Du per attachMovie auf die Bühne holst, ist eine Instanz (nämlich die eines MovieClips).

2. Du brauchst nur die Anfangskoordinaten Deiner MovieClip-Anordnung.

3. Bevor ich an Deiner Datei arbeite, erklär mir bitte noch einmal genau, worum es Dir geht: Was soll wo in welcher Szene angeordnet werden, und wann (auf welche Aktion hin) soll dies geschehen? Ich habe nach wie vor das Gefühl, wir reden aneinander vorbei.

Gruß
.
 

Neue Beiträge

Zurück