Actionscript 3 动态地向组件添加子组件,然后动态地操作它们?

Actionscript 3 动态地向组件添加子组件,然后动态地操作它们?,actionscript-3,flash,apache-flex,actionscript,flex4,Actionscript 3,Flash,Apache Flex,Actionscript,Flex4,我不知道为什么这不起作用。我有一个tabnavigator,我动态地添加了一个navigatecontainer,其中有一个textarea动态地添加到nav容器中。两者的id与chatguys[c][0]具有相同的stringname。 它给出的错误是“TypeError:Error#1034:Type强制失败:无法转换spark.skins.spark:”SkinnableContainerSkin@9737851去spark.components.TextArea。“在运行时。怎么办 非常

我不知道为什么这不起作用。我有一个tabnavigator,我动态地添加了一个navigatecontainer,其中有一个textarea动态地添加到nav容器中。两者的id与chatguys[c][0]具有相同的stringname。 它给出的错误是“TypeError:Error#1034:Type强制失败:无法转换spark.skins.spark:”SkinnableContainerSkin@9737851去spark.components.TextArea。“在运行时。怎么办

非常感谢您的帮助,谢谢:(

varidx:uint;
const len:uint=navigate.numChildren;
var alreadyexists:Boolean=false;
对于(idx=0;idx
b在这里我会给你看下半场的比赛,这很好,但是也许我需要用不同的方式来完成我需要做的事情

 var chats:Array = [];
        var chatguys:Array = [];

        public function userlist_click() :void{
            var windowname:Object =users_lst.selectedItem;
                            var idx:uint;
                 const len:uint = navigate.numChildren;
                 trace(navigate.numChildren);
                 var alreadyexists:Boolean = false;
                 for (idx = 0; idx < len; idx++) {


                    var check:NavigatorContent = navigate.getChildAt(idx) as NavigatorContent;



                     if (check.label == windowname.name)
                             {
                             alreadyexists = true;
                             }
                 } 
                 if (alreadyexists == false)
                 {

                 chats[windowname.name] = new spark.components.TextArea();
                 chats[windowname.name].x = 10;
                 chats[windowname.name].y= 32; 
                 chats[windowname.name].width= 517.19696 ;
                 chats[windowname.name].height= 343.18182;
                 chats[windowname.name].scroller
                 chats[windowname.name].x="9";
                 chats[windowname.name].y="2";
                 chats[windowname.name].width="517.19696";
                 chats[windowname.name].height="343.18182";

                 chats[windowname.name].setStyle("skinClass", spark.skins.spark.TextAreaSkin);
                 //textArea.skinClass= "spark.skins.spark.TextAreaSkin";
                 chats[windowname.name].text="ffg";
                 chats[windowname.name].setStyle("verticalScrollPolicy", ScrollPolicy.ON);

                 var match = new Array();
                 match.push(windowname.name);
                 match.push('bob');
                 chatguys.push(match);
               for (var i in chatguys){
                   if (chatguys[i][0] == windowname.name){
                 chats[windowname.name].textFlow=TextConverter.importToFlow(chatguys[i][1], TextConverter.TEXT_FIELD_HTML_FORMAT);
               }}

                 chats[windowname.name].id = windowname.name;
                 trace(chats[windowname.name]);

                 var messagebox:NavigatorContent = new NavigatorContent;
                 messagebox.percentWidth= 100;
                 messagebox.percentHeight= 100;
                 messagebox.label = chats[windowname.name];
                 messagebox.id = chats[windowname.name];
                 trace(messagebox.label);
                 messagebox.addElement(chats[windowname.name]);
                 navigate.addChild(messagebox); }}
var-chats:Array=[];
var:Array=[];
公用函数userlist_click():void{
var windowname:Object=users\u lst.selectedItem;
var-idx:uint;
const len:uint=navigate.numChildren;
跟踪(导航到numChildren);
var alreadyexists:Boolean=false;
对于(idx=0;idx
错误还应该告诉您行号,请告诉我们导致错误的行是什么/spark.components.TextArea(DisplayObjectContainer(navigate.getChildAt(idx)).getChildAt(chatguys[c][0])。textFlow=TextConverter.ImportFlow(chatguys[c][1],TextConverter.TEXT\u FIELD\u HTML\u格式);是唯一可能的地方,因为这是我尝试访问textarea的唯一地方,出于某种原因,它没有抓取textarea,而是spark skinnable容器。另外,令人难以置信的是,如果您看到我可能做错了或有更好的方法,我将非常感谢您的分享或展示如果,不管出于什么原因,其他人发现他们自己在做我正在做的事情,为了避免你在谷歌上搜索的麻烦,这里有一个解决方案(以及生活的答案)spark.components.TextArea(spark.components.NavigatorContent(DisplayObjectContainer(navigate.getChildAt(idx)).getElementAt(0)).textFlow=TextConverter.ImportFlow(chatguys[c][1],TextConverter.TEXT\u FIELD\u HTML\u格式);
 var chats:Array = [];
        var chatguys:Array = [];

        public function userlist_click() :void{
            var windowname:Object =users_lst.selectedItem;
                            var idx:uint;
                 const len:uint = navigate.numChildren;
                 trace(navigate.numChildren);
                 var alreadyexists:Boolean = false;
                 for (idx = 0; idx < len; idx++) {


                    var check:NavigatorContent = navigate.getChildAt(idx) as NavigatorContent;



                     if (check.label == windowname.name)
                             {
                             alreadyexists = true;
                             }
                 } 
                 if (alreadyexists == false)
                 {

                 chats[windowname.name] = new spark.components.TextArea();
                 chats[windowname.name].x = 10;
                 chats[windowname.name].y= 32; 
                 chats[windowname.name].width= 517.19696 ;
                 chats[windowname.name].height= 343.18182;
                 chats[windowname.name].scroller
                 chats[windowname.name].x="9";
                 chats[windowname.name].y="2";
                 chats[windowname.name].width="517.19696";
                 chats[windowname.name].height="343.18182";

                 chats[windowname.name].setStyle("skinClass", spark.skins.spark.TextAreaSkin);
                 //textArea.skinClass= "spark.skins.spark.TextAreaSkin";
                 chats[windowname.name].text="ffg";
                 chats[windowname.name].setStyle("verticalScrollPolicy", ScrollPolicy.ON);

                 var match = new Array();
                 match.push(windowname.name);
                 match.push('bob');
                 chatguys.push(match);
               for (var i in chatguys){
                   if (chatguys[i][0] == windowname.name){
                 chats[windowname.name].textFlow=TextConverter.importToFlow(chatguys[i][1], TextConverter.TEXT_FIELD_HTML_FORMAT);
               }}

                 chats[windowname.name].id = windowname.name;
                 trace(chats[windowname.name]);

                 var messagebox:NavigatorContent = new NavigatorContent;
                 messagebox.percentWidth= 100;
                 messagebox.percentHeight= 100;
                 messagebox.label = chats[windowname.name];
                 messagebox.id = chats[windowname.name];
                 trace(messagebox.label);
                 messagebox.addElement(chats[windowname.name]);
                 navigate.addChild(messagebox); }}