Text MCs anordnen lassen

formmad

Mitglied
Hi.

Hier der AS:

PHP:
var textmc_amt = 4; // Maximalanzahl der Text MCs
var x = 0; // Position für den ersten Text MC 

for (var i=1; i<=textmc_amt; i++) {
	if (_root.texte["textmc" + i]._visible == true) { 
        _root.texte["textmc" + i]._x = x;
        x += 100; // x-Abstand der MCs 
    } 
}

Nun setzt er mir jetzt Text-MC mit 100 Pixel Abstand schön nebeneinander.
Das Problem nun, wenn ein Text kürzer ist, sagen wir 50 Pixel, ist zum nächsten eine 50 Pixel grosse Lücke. Gibt es vielleicht einen anderen Weg die einzelen Text-MCs nebeneinandern anzuordnen, getrennt mit Komma?

Gruß
 
Hi,

PHP:
var textmc_amt = 4; // Maximalanzahl der Text MCs
var x = 0; // Position für den ersten Text MC
var abstand = 10; // Abstand zwischen Textfeldern

for (var i=1; i<=textmc_amt; i++) {
    if (_root.texte["textmc" + i]._visible == true) {
        _root.texte["textmc" + i]._x = x;
        x += _root.texte["textmc" + i]._width + abstand;
    }
}
Dazu muss die autoSize-Eigenschaft der Textfelder auf true stehen.

Gruß
.
 
Hi.

@Datic

Wie bekomme ich zwischen die einzelnen Text MCs noch Kommas?
Und das nur wenn es zwei Text MCs sind, sprich dazwischen!

Gruß
 
Hi,

EDIT: Code entfernt wegen zu vielen Fehlern. Weiter unten steht die korrigierte Fassung.

Gruß
.
 
Zuletzt bearbeitet:
Hi.

Müssen die Textfelder in den Text MCs aus Dynamisch stehen und dort einen Instanznamen vergeben bekommen?

Weil ich bekomme das Script irgendwie nicht zum laufen.

Die Anordnungen der Texte bleibt leer.

Gruß
 
1. Sollte immer lt heissen, sorry. ;)

2. Verstehe die Frage nicht. Da ich den Pfad zu den Textfeldern nicht kenne, kann ich natürlich nur raten. Ich bin davon ausgegangen, dass es sich bei texte["textmc" + i] um MovieClips handelt, in denen sich Textfelder befinden?

Gruß
.
 
Hi...

zu 1.: var lt = 0;
Wo für steht diese Variable?

zu 2.: der Pfad ist _root.texte.textmc1.text

"["textmc" + i]" ist selber auch ein MovieClip und darin ist die Textebene als "Statischer Text"

ich bekomme das mit dem Komma irgendwie nicht hin... :(

Gruß
 
Hi,

mit statischen Textfeldern kann das auch nicht funktionieren. Nimm dymamische Textfelder mit eingebetteter Schriftart und stelle die autoSize-Eigenschaft auf true. Gib den Textfeldern den Instanznamen "textfeld".

Im Übrigen haben sich etliche Fehler in meinen Code eingeschlichen (das kommt davon, wenn man irgendwas aus dem Kopf postet). Korrekt muss es so lauten:
PHP:
var textmc_amt = 4; // Maximalanzahl der Text MCs
var x = 0; // Position für den ersten Text MC
var abstand = 10; // Abstand zwischen Textfeldern
var last_t = 0;

for (var i=1; i<=textmc_amt; i++) {
	if (_root.texte["textmc" + i]._visible == true) {
		last_t = _root.texte["textmc" + i];
		last_t._x = x;
		last_t.textfeld.text += ", ";
		x += last_t.textfeld.textWidth + abstand;
	}
}
last_t.textfeld.text = last_t.textfeld.text.substr(0, last_t.textfeld.text.length - 2);
Mit lt (ich und meine Abkürzungen ^^) meinte ich Last_Textfield - das kann aber gar nicht funktionieren, da "lt" ein reserviertes Wort in Flash ist (Flash 4: kleiner als). Ich habe das nun in "last_t" geändert.

Im Anhang mal ein funktionierendes Beispiel

Gruß
.
 

Anhänge

Zurück