在运行时AS2中创建多个TextField

时间:2010-03-24 22:47:05

标签: dynamic actionscript-2 flash-cs3

我在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>

请帮助,我尝试了很多东西,但没有快乐。

提前谢谢。

1 个答案:

答案 0 :(得分:0)

理论上虽然trace函数确实可以正常工作,但这是因为它被自动格式化为字符串。您在createTextField中对节点的使用可能是作为XML传递的,因此无法使用。尝试使用_root.createTextField(myNode[0].attributes.name.toString(), 1, 0, 0, 100, 20)代替看看会发生什么。