jandhb
asked on
xml node value
Here is the code that I currently have in my class...
-------------------------- -----
class WordOfDay extends MovieClip{
private var xmlPath:String;
private var target:MovieClip;
private var wordTxt:TextField;
private var success:Boolean;
private var xmlWord:XML;
private var xnRoot:XMLNode;
private var xnFirstItem:XMLNode;
private var xnWord:String;
private var xnWordValue:String;
//CONSTRUCTOR
function WordOfDay(target:MovieClip , oXmlPath:String){
xmlPath = oXmlPath;
loadXML(xmlPath);
newClip(target);
setCSS();
}
public function loadXML(xmlPath:String){
xmlWord = new XML();
xmlWord.ignoreWhite = true;
xmlWord.onLoad = function(success:Boolean): Void
{
if (success) {
xnRoot = this.firstChild;
xnFirstItem = xnRoot.firstChild;
xnWord = xnFirstItem.firstChild;
xnWordValue = xnWord.firstChild.nodeValu e;
trace(xnWordValue);
} else {
trace ("no");
}
}
xmlWord.load(xmlPath);
}
public function newClip(target:MovieClip): Void {
this.createEmptyMovieClip( "target", this.getNextHighestDepth() );
target.createTextField("wo rdTxt", 3, 0, 0, 200, 12);
//PROPERTIES
target.wordTxt.border = true;
target.wordTxt.autoSize = "left";
target.wordTxt.multiline = false;
target.wordTxt.background = false;
target.wordTxt.html = true;
target.wordTxt.wordWrap = false;
target.wordTxt.embedFonts = true;
target.wordTxt.text = xnWordValue;
}
public function setCSS(){
var cssStyles:TextField.StyleS heet = new TextField.StyleSheet();
cssStyles.onLoad = function():Void {
target.wordTxt.styleSheet = this;
};
cssStyles.load("wod.css");
}
}
-------------------------- ------
My question is why when I trace out xnWordValue in loadXML() it shows the value in the xml file, but when I try to set xnWordValue to the text value of my textbox nothing displays?
Thank you.
--------------------------
class WordOfDay extends MovieClip{
private var xmlPath:String;
private var target:MovieClip;
private var wordTxt:TextField;
private var success:Boolean;
private var xmlWord:XML;
private var xnRoot:XMLNode;
private var xnFirstItem:XMLNode;
private var xnWord:String;
private var xnWordValue:String;
//CONSTRUCTOR
function WordOfDay(target:MovieClip
xmlPath = oXmlPath;
loadXML(xmlPath);
newClip(target);
setCSS();
}
public function loadXML(xmlPath:String){
xmlWord = new XML();
xmlWord.ignoreWhite = true;
xmlWord.onLoad = function(success:Boolean):
{
if (success) {
xnRoot = this.firstChild;
xnFirstItem = xnRoot.firstChild;
xnWord = xnFirstItem.firstChild;
xnWordValue = xnWord.firstChild.nodeValu
trace(xnWordValue);
} else {
trace ("no");
}
}
xmlWord.load(xmlPath);
}
public function newClip(target:MovieClip):
this.createEmptyMovieClip(
target.createTextField("wo
//PROPERTIES
target.wordTxt.border = true;
target.wordTxt.autoSize = "left";
target.wordTxt.multiline = false;
target.wordTxt.background = false;
target.wordTxt.html = true;
target.wordTxt.wordWrap = false;
target.wordTxt.embedFonts = true;
target.wordTxt.text = xnWordValue;
}
public function setCSS(){
var cssStyles:TextField.StyleS
cssStyles.onLoad = function():Void {
target.wordTxt.styleSheet = this;
};
cssStyles.load("wod.css");
}
}
--------------------------
My question is why when I trace out xnWordValue in loadXML() it shows the value in the xml file, but when I try to set xnWordValue to the text value of my textbox nothing displays?
Thank you.
ASKER
I tried what you did but it did not change the results. Still getting output in trace statement but nothing in the text box.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Also (forgot this the first time) instead of storing the object as Proactivation did in loadXML() you can also use the Delegate class. Like so:
public function loadXML(xmlPath:String) {
var xmlDelegate = Delegate.create(this,loade dXML);
xmlWord = new XML();
xmlWord.ignoreWhite = true;
xmlWord.onLoad = function(success:Boolean): Void {
if (success) {
xmlDelegate(this);
} else {
trace("no");
}
};
xmlWord.load(xmlPath);
}
Then the first 2 lines of loadedXML would look like:
private function loadedXML(wXML):Void {
xnRoot = wXML.firstChild;
Just place import mx.utils.Delegate; as the first line in the WordOfDay.as file, before *anything* else.
public function loadXML(xmlPath:String) {
var xmlDelegate = Delegate.create(this,loade
xmlWord = new XML();
xmlWord.ignoreWhite = true;
xmlWord.onLoad = function(success:Boolean):
if (success) {
xmlDelegate(this);
} else {
trace("no");
}
};
xmlWord.load(xmlPath);
}
Then the first 2 lines of loadedXML would look like:
private function loadedXML(wXML):Void {
xnRoot = wXML.firstChild;
Just place import mx.utils.Delegate; as the first line in the WordOfDay.as file, before *anything* else.
class WordOfDay extends MovieClip {
private var xmlPath:String;
private var target:MovieClip;
private var wordTxt:TextField;
private var success:Boolean;
private var xmlWord:XML;
private var xnRoot:XMLNode;
private var xnFirstItem:XMLNode;
private var xnWord:XMLNode;
private var xnWordValue:String;
private var response_xml:XML;
//CONSTRUCTOR
function WordOfDay(target:MovieClip
xmlPath = oXmlPath;
loadXML(xmlPath);
newClip(target);
setCSS();
}
public function loadXML(xmlPath:String) {
var thisObj:WordOfDay = this;
xmlWord = new XML();
xmlWord.ignoreWhite = true;
xmlWord.onLoad = function(success:Boolean):
if (success) {
thisObj.response_xml = this;
thisObj.loadedXML();
} else {
trace("no");
}
};
xmlWord.load(xmlPath);
}
private function loadedXML():Void {
xnRoot = this.response_xml.firstChi
xnFirstItem = xnRoot.firstChild;
xnWord = xnFirstItem.firstChild;
xnWordValue = xnWord.firstChild.nodeValu
trace(xnWordValue);
}
public function newClip(target:MovieClip):
this.createEmptyMovieClip(
target.createTextField("wo
//PROPERTIES
target.wordTxt.border = true;
target.wordTxt.autoSize = "left";
target.wordTxt.multiline = false;
target.wordTxt.background = false;
target.wordTxt.html = true;
target.wordTxt.wordWrap = false;
target.wordTxt.embedFonts = true;
target.wordTxt.text = xnWordValue;
}
public function setCSS() {
var cssStyles:TextField.StyleS
cssStyles.onLoad = function():Void {
target.wordTxt.styleSheet = this;
};
cssStyles.load("wod.css");
}
}