首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > flex >

Flex4.5 中的异常

2012-09-04 
Flex4.5 中的错误近期在用Flex4.5 开发项目?中途使用一个s:List来显示每一个项的时候,采用s:HTTPServic

Flex4.5 中的错误

近期在用Flex4.5 开发项目

?

中途使用一个<s:List>来显示每一个项的时候,采用<s:HTTPService>标签、、、

?

但是在result中触发事件时,报错如下:

TypeError: Error #1034: Type Coercion failed: cannot convert mx.utils::ObjectProxy....

?

<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
??????? xmlns:s="library://ns.adobe.com/flex/spark"
??????? xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:local="*"
??????? creationComplete="xmlReader.send()"
??????? width="1200" height="768" showStatusBar="false"
??????? xmlns:ui="ui.*">
?<fx:Declarations>
??<!-- Place non-visual elements (e.g., services, value objects) here -->
??<s:HTTPService id="xmlReader" url="projects.xml" result="xmlReader_resultHandler(event)"/>
?</fx:Declarations>
?<fx:Script>
??<![CDATA[
???import com.sap.prototyping.standalone.FileRequest;
???import com.sap.prototyping.util.NativeMenuUtil;
???
???import mx.collections.ArrayCollection;
???import mx.events.FileEvent;
???import mx.events.FlexEvent;
???import mx.rpc.events.ResultEvent;
???import mx.utils.ArrayUtil;
???
???import spark.events.IndexChangeEvent;
???
???[Bindable]
???public var projects:ArrayCollection;
???
???protected function xmlReader_resultHandler(event:ResultEvent):void
???{
????//projects = event.result as ArrayCollection;
????trace("project:"+event.result.projects.project);
????if(event.result.projects.project is ArrayCollection){
?????projects = event.result.projects.project;
????}else{
?????projects = new ArrayCollection(ArrayUtil.toArray(event.result.projects.project));
????}
???}
???
???protected function list1_changeHandler(event:IndexChangeEvent):void
???{
????// TODO Auto-generated method stub
????
???}
???
??]]>
?</fx:Script>
?<s:List change="list1_changeHandler(event)" dataProvider="{projects}">
??<s:itemRenderer>
???<fx:Component>
????<s:ItemRenderer>
?????<s:VGroup horizontalAlign="center">
??????<s:Image source="assets/dropzone.png"/>
??????<s:Label text="{data.name}"/>
?????</s:VGroup>
????</s:ItemRenderer>
???</fx:Component>
??</s:itemRenderer>
?</s:List>
?
</s:WindowedApplication>

?

最后在网站http://forum.sephiroth.it/showthread.php?8834-ArrayCollection-Error?找到了解决办法。

?

如红色加粗斜体部分、、、:

?

projects = event.result.projects.project;

=============================>>

?

if(event.result.projects.project is ArrayCollection){
?????projects = event.result.projects.project;
????}else{
?????projects = new ArrayCollection(ArrayUtil.toArray(event.result.projects.project));
????}
?}

其中红色加粗部分之所以再用了一次<s:ItemRenderer> 标签,是因为在下面的Label要用到【data】这个系统默认的属性,不加的话,会报如下错误:Access of undefined property data。

热点排行