attachMovie() verzerrt MC

greggy80

Mitglied
Hallo!

Flash bringt mich einmal wieder zum Verzweifeln. 2 Dinge:

1. Ich möchte per attachMovie einen MC laden
2. Dieser MC beinhaltet ein dyn. Textfeld, das anschließend sofort einen Text enthalten soll

Das attachMovie() findet auf einem übergeordneten MovielClip namens c_mc statt.
Das zu ladene Objekt enthält eine Funktion set_text(text), mit der man dem eingebetteten Textfeld Text zuordnen kann.

Meine Absicht ist es, zur Laufzeit Texte in dynamisch erzeugte Textfelder zu laden. Wenn es dazu einen besseren Ansatz als meinen gibt, dann wäre ich über diesen Ansatz dankbar, ansonsten würde es auch schon reichen, wenn jemand meine Flash-Datei zum Laufen bringen kann.

Denn wenn ich attachMovie() auf c_mc anwende, wird der MC völlig verzerrt (weiß der Geier, was das soll, wenn ich auf _root lade, passiert das nicht).
Desweiteren bekomm ich es nicht hin, den text sofort im Anschluss einzufügen. :mad:

---

Der blaue Button führt das attachMovie() aus.
Das Textfeld auf der _root-Ebene dient dazu, Testtext einzugeben.

Nach dem Laden kann man den grünen Button betätigen, um den Text aus dem Textfeld in das per attachMovie() erzeugte einzufügen.
Sowas wie "ssss" eignet sich perfekt, um den Verzerrungseffekt zu sehen... Einige Buchstaben wie "H" oder so bewirken gar nichts.

tss...
 

Anhänge

Schau dir mal deinen container-Movieclip (Instanzname c_mc) an, am besten mit offenem Bedienfeld "Transformieren".
Der ist in der Breite auf 20000% skaliert. Stell das zurück auf 100.
 
Ach krass... das ist verrückt, das hab ich nie so eingestellt bzw. wahrscheinlich schon, aber ich habs nicht bemerkt... na ja, wie auch immer, das erklärt jedenfalls einiges.

Hat jetzt noch jemand einen Plan, wie ich gleich nach dem Laden den Text in mein Textfeld bekomme?
Mach ich es direkt nach attachMovie(),.klappts nicht... ist ja auch in Ordnung, das Ding muss ja erstma geladen werden. Ich habs dann aber mal mit onLoad, onLoadInit und onData probiert, damit klappts ebenfalls nicht... :-(
 
Hi,

1. Dieser Aufruf:
Code:
	c_mc.testing2.onLoadInit()
	{
		trace("GELADEN!");
		set_text("ssssss");
	}
ist falsch: Eine Funktion muss mit dem Schlüsselword "function" deklariert werden.

2. Wozu weist Du einem Objekt ._x und ._y-Eigenschaften zu? :confused:

3. Das Schlüsselwort "text" ist reserviert für die .text-Eigenschaft von Textfeldern. Verwende als Parametervariable für Deine Funktionen ein unreserviertes Wort (z.B. "txt").

4. Um die Methode "set_text" im MC "testing2" aufzurufen, musst Du mindestens einen Frameaufruf warten, da Methoden in geladenen Clips erst nach dem der aktuellen Zeitleiste geparst werden. Da es sich bei Deinen Buttons um Schaltflächen handelt, würde ich folgende Vorgehensweisen vorschlagen:

a) Lass den Textfeld-MC selbst einen Frame warten:
Code:
on (release)
{
	var testing2 = c_mc.attachMovie("txtfield_mc", "testing2", 23, t);
	testing2.mein_text = "ssss";
}
Code:
// Code im MC "txtfield_mc":
this.onEnterFrame = function() {
	if (mein_text != undefined) {
		set_text(mein_text);
		delete this.onEnterFrame;
	}
}

Gruß
.
 
Zurück