我在AS2中生成多个文本字段时遇到问题。 我的AS2 Flash应用程序调用数据库(通过PHP),然后接收包含一些对象的XML文件。我想做的就是循环遍历这个XML对象,然后根据XML对象的信息创建一个TextField(实际上是一个包含图形和TextField的组件,但稍后会出现这种情况)。
我知道我可以创建类似的东西: _root.createTextField( “myText1”,1,0,0,100,20); myText1.text =“这是文字ONE”;
_root.createTextField( “myText2”,2,0,30,100,20); myText2.text =“这是文字TWO”;这将导致2个文本字段,但问题是当我尝试动态创建它时(例如我有item:myNode [0] .attributes.name(但是当我在它中使用它时:_root.createTextField(myNode [0])。 attributes.name,1,0,0,100,20),然后我得到了编译错误。)
var myXML:XML = new XML();
myXML.ignoreWhite = TRUE; myXML.load( “tekst.xml”); var tekst:String = new String(); myXML.onLoad = function(success){ if(success){ var myNode = myXML.firstChild.childNodes; for(i = 0; i
trace(“height:”+ myNode [i] .attributes.height); trace(“color:”+ myNode [i] .attributes.color); 迹(MYNODE [I] .firstChild.nodeValue); } } }
这个实际跟踪值,我可以在创建组件时实际使用它们,但它不会创建具有相同名称的组件(显然两个实例都指向同一个对象,因此最后一个只能看到)。 / p>
请帮助,我尝试了很多东西,但没有快乐。
提前谢谢。
答案 0 :(得分:0)
理论上虽然trace函数确实可以正常工作,但这是因为它被自动格式化为字符串。您在createTextField中对节点的使用可能是作为XML传递的,因此无法使用。尝试使用_root.createTextField(myNode[0].attributes.name.toString(), 1, 0, 0, 100, 20)
代替看看会发生什么。