Hallo zusammen...
Bevor ich hier endlosen Code einfüge, würde ich lieber mein Problem genauer beschreiben.
Ich möchte aus Strukturinformationen (XML) für jede Unterseite (In meinem Fall Module 1 - n) die Anzahl der Komponenten auslesen und anzeigen.
Bisher habe ich in der XML Textfelder definiert, die dynamisch angezeigt werden. Darin steht z.B. Name (XY), Type(Dynamic), MaxChars(120),...
FEHLER 1:
Hierbei wird in der XML entweder true oder false in die Variable FeldBorder geschrieben. Wenn ich FeldBorder nun trace steht dort (false, true, false, true, false, false, false). Somit solten theoretisch Textfeld 1 und 3 mit Border sein, der Rest ohne. Wenn ich allerdings im Anschluß FeldName_Object.border trace steht dort immer nur true. Handelt es sich dabei um ein syntaktisches Problem?
FEHLER 2:
Bei diesem Fehler geht es darum, dass er mit der Variablen FeldStyleFormat nichts anfangen kann. Dort werden spezifische Formate aus der XML gezogen, beispielsweise Format: b13_format (dies steht in der XML und wird in die Variable FeldStyleFormat geladen). Wenn ich allerdings b13_format "hart" reinschreibe -> FeldName_Object.setTextFormat(b13_format); klappt es wunderbar...
Wüßte dazu evtl. jemand eine Lösung? (Die Formate sind in einem ext. *.as hinterlegt, welches sich als Top-include in _root befindet)...
FEHLER 3:
Bei diesem Fehler handelt es sich um den schönen Index. Der Index ist in meiner Version mit der Laufvariable i identisch. Dies hat allerdings folgenden Nachteil:
Angenommen der Benutzer klickt auf Modul 1 (Dann wird die Struktur XML ausgelesen. Darüber hinaus werden 6 Textfelder angelegt. 3 Input und 3 Dynamic. Da sich alles unter _root abspielt ist der Index in diesem Fall auf 6. (Index == i).
Klickt der Benutzer nun auf Modul 2 (Dort sind nur 4 Textfelder definiert), werden die 4 neuen Textfelder angezeigt, darüber hinaus werden aber noch 2 Felder aus Modul 1 angezeigt...
Nun zu meinen ursprünglichen Fragen
Ist es möglich _root komplett zu "leeren"? Obwohl ich ja lieber für jedes Modul einen eigenen MC hätte, nur hat das vor einigen Tagen nicht funktioniert, da er die Textformate (..._format) komischer Weise nur auf der _root Bühne angezeigt hat.
// Evtl. ein kleines Beispiel für einen dynamischen MC...
Darüber hinaus würde ich sehr gerne die neuen V2-Komponenten nutzen. Allerdings will ich sie dynamisch zur Laufzeit auf die Bühne ziehen und damit arbeiten. Jedoch bleibt meine Bühne immer leer, wenn ich eine Komponente mit diesem Code anlege. (Vieleicht bin ich zu dumm, allerdings denke ich, dass es an dem neuen Thema und der fehlenden Routine liegt *G*)
// Damit habe ich es versucht: UIObject.createClassObject()
Frage: Mir ist zwar bewußt, dass da noch etwas fehlen muss, allerdings finde ich im Netz momentan nur OOP-Beispiele. Diese sind bei mir momentan allerdings nicht umzusetzen.
Ich würde mich sehr über eure Hilfe freuen und würde mein bestes geben, um mich in Zukunft zu revangieren.
Schöne Grüße aus Gütersloh,
Claus Gronemeier
Bevor ich hier endlosen Code einfüge, würde ich lieber mein Problem genauer beschreiben.
Ich möchte aus Strukturinformationen (XML) für jede Unterseite (In meinem Fall Module 1 - n) die Anzahl der Komponenten auslesen und anzeigen.
Bisher habe ich in der XML Textfelder definiert, die dynamisch angezeigt werden. Darin steht z.B. Name (XY), Type(Dynamic), MaxChars(120),...
Code:
---------- BEGINN XML ----------
<STRUKTUR>
<MODUL ID="0" BESCHREIBUNG="Modul 1">
<FELDER>
<FELD>
<EIGENSCHAFTEN NAME="KNR" TYPE="dynamic" INHALT="Kundennummer:" X="150" Y="100" BORDER="false" LENGTH="100" HEIGTH="20" BACKGROUND="false" PASSWORD="false" MULTILINE="false" HTML="false" EMBEDFONTS="false" VARIABLE="null" MAXCHARS="null" STYLE_FORMAT="b13_format"/>
</FELD>
<FELD>
<EIGENSCHAFTEN NAME="KNR_Input" TYPE="input" INHALT="..." X="210" Y="200" BORDER="true" LENGTH="120" HEIGTH="20" BACKGROUND="false" PASSWORD="false" MULTILINE="false" HTML="false" EMBEDFONTS="false" VARIABLE="null" MAXCHARS="9" STYLE_FORMAT="b13_format"/>
</FELD>
...
---------- ENDE XML ----------
Mit einer For-Schleife lese ich die einzelnen Felder eines Moduls (Definiert in der XML) aus. Die Laufvariable ist in diesem Fall die Anzahl der ChildNodes eines Moduls. Beispielsweise Feld 1 - n...
// Integration von XML in FLASH
---------- BEGINN AS ----------
for (var i = 0; i<Felder; i++){ // GEBRAUCH DES DYNAMISCHEN WERTES
// DETAILDEFINITIONEN EINES FELDES
FeldName = meinXML.firstChild.childNodes[ModulID].childNodes[0].childNodes[i].childNodes[0].attributes.NAME;
FeldType = meinXML.firstChild.childNodes[ModulID].childNodes[0].childNodes[i].childNodes[0].attributes.TYPE;
...
// Erstellung von n Textfeldern auf _root. - Sichtbare Fehler: 1,2,3
var FeldName_String = FeldName;
_root.createTextField(FeldName_String,i,FeldY,FeldX,FeldLength,FeldHeigth); // FEHLER 3
FeldName_Object=eval(FeldName_String);
FeldName_Object.text = FeldInhalt;
//trace(FeldBorder);
//trace(FeldName_Object.border);
FeldName_Object.border = FeldBorder; // FEHLER 1
FeldName_Object.type = FeldType;
FeldName_Object.maxChars = FeldMaxchars;
FeldName_Object.type = FeldMultiline;
FeldName_Object.type = FeldEmbedFonts;
FeldName_Object.type = FeldHtml;
FeldName_Object.type = FeldVariable;
FeldName_Object.setTextFormat(FeldStyleFormat); // FEHLER 2
---------- ENDE AS ----------
FEHLER 1:
Hierbei wird in der XML entweder true oder false in die Variable FeldBorder geschrieben. Wenn ich FeldBorder nun trace steht dort (false, true, false, true, false, false, false). Somit solten theoretisch Textfeld 1 und 3 mit Border sein, der Rest ohne. Wenn ich allerdings im Anschluß FeldName_Object.border trace steht dort immer nur true. Handelt es sich dabei um ein syntaktisches Problem?
FEHLER 2:
Bei diesem Fehler geht es darum, dass er mit der Variablen FeldStyleFormat nichts anfangen kann. Dort werden spezifische Formate aus der XML gezogen, beispielsweise Format: b13_format (dies steht in der XML und wird in die Variable FeldStyleFormat geladen). Wenn ich allerdings b13_format "hart" reinschreibe -> FeldName_Object.setTextFormat(b13_format); klappt es wunderbar...
Wüßte dazu evtl. jemand eine Lösung? (Die Formate sind in einem ext. *.as hinterlegt, welches sich als Top-include in _root befindet)...
FEHLER 3:
Bei diesem Fehler handelt es sich um den schönen Index. Der Index ist in meiner Version mit der Laufvariable i identisch. Dies hat allerdings folgenden Nachteil:
Angenommen der Benutzer klickt auf Modul 1 (Dann wird die Struktur XML ausgelesen. Darüber hinaus werden 6 Textfelder angelegt. 3 Input und 3 Dynamic. Da sich alles unter _root abspielt ist der Index in diesem Fall auf 6. (Index == i).
Klickt der Benutzer nun auf Modul 2 (Dort sind nur 4 Textfelder definiert), werden die 4 neuen Textfelder angezeigt, darüber hinaus werden aber noch 2 Felder aus Modul 1 angezeigt...
Nun zu meinen ursprünglichen Fragen
Ist es möglich _root komplett zu "leeren"? Obwohl ich ja lieber für jedes Modul einen eigenen MC hätte, nur hat das vor einigen Tagen nicht funktioniert, da er die Textformate (..._format) komischer Weise nur auf der _root Bühne angezeigt hat.
// Evtl. ein kleines Beispiel für einen dynamischen MC...
Darüber hinaus würde ich sehr gerne die neuen V2-Komponenten nutzen. Allerdings will ich sie dynamisch zur Laufzeit auf die Bühne ziehen und damit arbeiten. Jedoch bleibt meine Bühne immer leer, wenn ich eine Komponente mit diesem Code anlege. (Vieleicht bin ich zu dumm, allerdings denke ich, dass es an dem neuen Thema und der fehlenden Routine liegt *G*)
// Damit habe ich es versucht: UIObject.createClassObject()
Code:
---------- BEGINN AS ----------
import mx.controls.Button;
createClassObject(Button,"button2",5,{label:"Test Button"});
---------- ENDE AS ----------
Frage: Mir ist zwar bewußt, dass da noch etwas fehlen muss, allerdings finde ich im Netz momentan nur OOP-Beispiele. Diese sind bei mir momentan allerdings nicht umzusetzen.
Ich würde mich sehr über eure Hilfe freuen und würde mein bestes geben, um mich in Zukunft zu revangieren.
Schöne Grüße aus Gütersloh,
Claus Gronemeier