Flex中TypeError: Error #1089: Assignment to lists with more than one item is not supported.

这几天一直学习flex的内容,在看之前同事写的代码。
学习过程中发现了一个bug:

TypeError: Error #1089: Assignment to lists withmore than one item is not supported.
 at AccessRight/filterData()
 at AccessRight/textInput_change()
 at AccessRight/__unitGroupsFilter_change()
 at flash.events::EventDispatcher/dispatchEventFunction()
 at flash.events::EventDispatcher/dispatchEvent()
 at mx.core::UIComponent/dispatchEvent()
 at mx.controls::TextInput/textField_changeHandler()

这个bug是用firefox打开application,在页面渲染时,出现的一个弹出窗口错误。但是同样的application在ie中或者是chrome中就不会出现这个问题。为这个问题我苦苦的在网上找了好几天,但是能得到的信息都还是只有那么几条。我在代码中找到出现这个bug 的代码块,是在xml中,将一个节点添加到已有的xml中,这里并不是xmllist,所以bug提示说:TypeError: Error #1089:Assignment to lists with more than one item is not supported. 即:不支持把多个节点添加到lists里。但是我根本就不是list,只是xml而已。
源码如下:

if(temp.toUpperCase().indexOf(this.keyword.toUpperCase())>=0)
						{
							xml.appendChild(xmlChildren[i]);
						}

我按照网上说的方法把xml.appendChild(xmlChildren[i]);换了一种写法:xml.node += xmlChildren[i], 但是即使是这样我的ff还是回报bug。但是我在自己的flexbuilder里,用了同样的两个方法(xml.appendChild(xmlChildren[i]);/xml.node += xmlChildren[i])去添加节点都是可以成功的,并且不会出错。
实在是没有办法就去跟同事讨论了一下,发现有可能是ff的flash插件版本的问题,因为这个应用在同事那里也是不会出错的。而唯一不同的区别就是:他的ff的flash插件版本是:Shockwave Flash 10.0.32.18而我的是Shockwave Flash 10.1....,我就试着把我的flash插件删除重新装了最新的Shockwave flash 11.,弄完以后,再跑,发现也flash都刷不出来了,我只好用同事的那版,装完之后,bug真的就不会再现了。这个问题终于是得到了解决,但是有些东西还是要回想一下。
首先:ff对flash的支持可能有的时候会比较蛋疼,并且不是说你版本越高就越好,要根据自己的应用对哪个版本的flash支持,否则,找半天也找不出是什么原因

最后:要经常跟周围的同事交流,沟通,这个无论从哪个角度来看,都是有百利而无一害的。当然最好是要带着问题。
以上!

你可能感兴趣的:(Flex中TypeError: Error #1089: Assignment to lists with more than one item is not supported.)