PDA

Volledige versie bekijken : Textfield met XML


BS82
%Europe/Berlin %624 %2009, 14:59
Hey all,

ik ben bezig om in as 3.0 een xml bestand in de te laden in een textfield. Nu is het volgende me al gelukt:

var stf:TextFormat = new TextFormat();
stf.color = 0xFF0000;
stf.font = "Verdana";
stf.size = 14;

var tf:TextField = new TextField();
tf.border = true;
tf.width = 549;
tf.height = 200;
tf.wordWrap = true;

var xml:XML;
var urlRequest:URLRequest = new URLRequest("XML.xml");
var urlLoader:URLLoader = new URLLoader();
urlLoader.dataFormat = URLLoaderDataFormat.TEXT;
urlLoader.addEventListener(Event.COMPLETE, urlLoader_complete);
urlLoader.load(urlRequest);

function urlLoader_complete (e:Event):void {
var xml = new XML(e.target.data);
ParseData(xml);
}

function ParseData(bookInput:XML):void{
var authorList:XMLList = bookInput.Book.author.children();

for (var i:int = 0; i < authorList.length(); i++){
tf.text = authorList;
}

tf.setTextFormat(stf);
addChild(tf);
}

Nu zou ik alleen willen dat na elke child een return (lees: <br>) wordt toegevoegd. Nu wordt het allemaal achter elkaar op 1 regel ingeladen. Weet iemand hoe ik dat doe? Ik heb al geprutst met textHtml, maar dat lukte me ook niet.

Groetjes,
Fleur

rangelier
%Europe/Berlin %645 %2009, 15:30
hey,


for (var i:int = 0; i < authorList.length(); i++){
tf.text = authorList[i] + "\n\r";
}


ik zag net nog iets:

var urlRequest:URLRequest = new URLRequest("XML.xml");


new URLRequest("XML.xml");

ik zou ("XML.xml"); even veranderen in bv ("authorlijst.xml");
Vraag me niet waarom, maar mij is altijd geleerd om geen classnamen te gebruiken als instance naam.

groeten

ninetynine
%Europe/Berlin %657 %2009, 15:46
ik zou ("XML.xml"); even veranderen in bv ("authorlijst.xml");
Vraag me niet waarom, maar mij is altijd geleerd om geen classnamen te gebruiken als instance naam.


"Xml.xml" is geen instancename maar een de naam van een bestand,
door het feit dat die als String worden meegegeven doet dat er niet toe, maar voor eigen
duidelijkheid is het idd beter die een zinnige naam te geven.

voor instancename kan je idd beter niet xml gebruiken
(het kan maar het is vragen om problemen)

rangelier
%Europe/Berlin %665 %2009, 15:58
aah ok, heb ik zelf ook weer wat geleerd :)
wist inderdaad niet precies waarom maarja............

BS82
%Europe/Berlin %531 %2009, 12:44
hey,


for (var i:int = 0; i < authorList.length(); i++){
tf.text = authorList[i] + "\n\r";
}


ik zag net nog iets:

var urlRequest:URLRequest = new URLRequest("XML.xml");


new URLRequest("XML.xml");

ik zou ("XML.xml"); even veranderen in bv ("authorlijst.xml");
Vraag me niet waarom, maar mij is altijd geleerd om geen classnamen te gebruiken als instance naam.

groeten


Als ik dat doe, dan laat die alleen de laatste 'record' zien...

BS82
%Europe/Berlin %538 %2009, 12:55
Ik heb er het volgende van gemaakt:
tf.text += authorList[i] + "\n\r";

Nu doet die het wel, maar krijg ik de volgende warning mee:
Warning: 3551: Appending text to a TextField using += is many times slower than using the TextField.appendText() method.

BS82
%Europe/Berlin %545 %2009, 13:06
Gelukt :)

for (var i:int = 0; i < authorList.length(); i++){
// tf.text = authorList;
tf.appendText(authorList[i] + "\n\r");
tf.text = tf.text;
}