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支持,否则,找半天也找不出是什么原因

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

相关文章

一:display:flex布局display:flex是一种布局方式。它即可以...
1. flex设置元素垂直居中对齐在之前的一篇文章中记载过如何...
移动端开发知识点pc端软件和移动端apppc端软件是什么,有哪些...
最近挺忙的,准备考试,还有其他的事,没时间研究东西,快周...
display:flex;把容器设置为弹性盒模型(设置为弹性盒模型之后...
我在网页上运行了一个Flex应用程序,我想使用Command←组合键...