It's scope issue? I guess, tracer () is not found or executed in wrong scope.
Use Delegate to fix this:- layout_xml.onLoad = mx.utils.Delegate.create (this, onXMLLoad); function onXMLLoad (success:Boolean) { ........... } Check, if that fixes the problem. -abdul On 6/12/06, Sajid Saiyed <[EMAIL PROTECTED]> wrote:
Hi All, I am faced with a strange problem. I have a XML which I am loading into the Flash movie and then iterate through it and store values in an array. Then I run through the array and want to drag BOXES using the drawing api. Here is my Flash Code: --------------------------------- //-------------- CODE START -------------- // RootNodes = []; SubRootNodes = []; tempArray = []; LoadXML("layout.xml"); function LoadXML(myXMLPath) { var layout_xml:XML = new XML(); layout_xml.ignoreWhite = true; layout_xml.onLoad = function(success:Boolean) { trace("success: "+success); trace("loaded: "+layout_xml.loaded); trace("status: "+layout_xml.status); if (success) { nodeLen = layout_xml.firstChild.childNodes.length; trace("nodeLen : "+nodeLen); for (var i = 0; i<nodeLen; i++) { RootNodes.push (layout_xml.firstChild.childNodes[i].nodeName); var node_xml = layout_xml.firstChild.childNodes[i].childNodes; rootnodeLen = node_xml.length; for (var j = 0; j<rootnodeLen; j++) { tempValues = []; for (var k = 0; k<node_xml[j].childNodes.length; k++) { tempValues.push (node_xml[j].childNodes[k].firstChild); } tempArray.push(tempValues); trace("------------"); } } tracer() } }; layout_xml.load(myXMLPath); } function tracer() { num = 0; for (var i = 0; i<tempArray.length; i++) { trace("Array trace: "+tempArray[i]); var Name = tempArray[i][0]; var Width = tempArray[i][1]; var Height = tempArray[i][2]; var XPos = tempArray[i][3]; var YPos = tempArray[i][4]; num++; trace("WIDTH: "+Width+" HEIGHT: "+Height+" XPOS: "+XPos+" YPOS: "+YPos); var newMC = _root.createEmptyMovieClip("box"+num, _root.getNextHighestDepth()); trace("New MC: "+newMC); newMC.lineStyle(5, 0xff3300, 100); newMC.moveTo(XPos, YPos); newMC.lineTo(Width, YPos); newMC.lineTo(Width, Height); newMC.lineTo(XPos, Height); newMC.lineTo(XPos, YPos); } } //-------------- CODE END -------------- // Here is my "layout.xml" XML file: ----------------------- //-------------- CODE START -------------- // <root> <LayerOne> <asset> <name>somename0.bmp</name> <width>100</width> <height>20</height> <xPos>50</xPos> <yPos>30</yPos> </asset> <asset> <name>somename1.bmp</name> <width>200</width> <height>10</height> <xPos>50</xPos> <yPos>70</yPos> </asset> </LayerOne> <LayerTwo> <asset> <name>somename2.bmp</name> <width>150</width> <height>30</height> <xPos>50</xPos> <yPos>100</yPos> </asset> </LayerTwo> </root> //-------------- CODE END -------------- // The problem is, All the traces are coming fine but the movie does not draw anything :(( Any idea why its behaving like this? Is the XML causing the problem or the createEmptyMovieClilp() causing this problem. I also tried: //////////////// trace("success: "+success); trace("loaded: "+layout_xml.loaded); trace("status: "+layout_xml.status); /////////////// Everything looked OK. Any suggestion or pointing to an error in my code is appreciated. Thanks _______________________________________________ Flashcoders@chattyfig.figleaf.com To change your subscription options or search the archive: http://chattyfig.figleaf.com/mailman/listinfo/flashcoders Brought to you by Fig Leaf Software Premier Authorized Adobe Consulting and Training http://www.figleaf.com http://training.figleaf.com
_______________________________________________ Flashcoders@chattyfig.figleaf.com To change your subscription options or search the archive: http://chattyfig.figleaf.com/mailman/listinfo/flashcoders Brought to you by Fig Leaf Software Premier Authorized Adobe Consulting and Training http://www.figleaf.com http://training.figleaf.com