从 AdobeTV 上的视频中,我尝试使用示例 empWeb (LiveCycle Data Services)。在 Flex Builder 3 (FB3) 中一切正常。当我在 Flash Builder 4.0 Beta (FB4) 上尝试此操作时,它不起作用。当我用 FB3 (2006) 的声明替换原始 xmlns 声明(2009,spark,halo)时,它可以工作。你能解释一下为什么吗?
我正在使用默认的 SDK(FB3 的 Flex 3.2 和 FB4 的 Flex 4.0)。我对此进行了调查(请参阅 3 个源代码示例)。源 #1 在 FB3 和 FB4 中工作正常,源 #2 给出 FB4 编译错误消息:
在“mxmlContentFactory”的初始化程序中,类型 flex.samples.crm.employee.Employee 不可分配给目标数组元素类型 mx.core.IVisualElement
Source #3 编译没问题,但是在浏览器中它只显示一个白屏(没有表格没有数据)。
来源#1
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="adobe.com/2006/mxml"; styleName="plain"
applicationComplete="ds.fill(employees)" xmlns:employee="flex.samples.crm.employee.*">
<employee:Employee/>
<mx:ArrayCollection id="employees"/>
<mx:DataService id="ds" destination="crm-employee"/>
<mx:DataGrid dataProvider="{employees}" width="100%" height="100%" editable="true"/>
</mx:Application>
来源#2
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="ns.adobe.com/mxml/2009"; xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/halo" minWidth="1024" minHeight="768"
xmlns:employee="flex.samples.crm.employee.*">
<employee:Employee/>
<mx:ArrayCollection id="employees"/>
<mx:DataService id="ds" destination="crm-employee"/>
<mx:DataGrid dataProvider="{employees}" width="100%" height="100%" editable="true"/>
</s:Application>
来源#3
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="adobe.com/2006/mxml";
minWidth="1024" minHeight="768" xmlns:employee="flex.samples.crm.employee.*">
<employee:Employee/>
<mx:ArrayCollection id="employees"/>
<mx:DataService id="ds" destination="crm-employee"/>
<mx:DataGrid dataProvider="{employees}" width="100%" height="100%" editable="true"/>
</s:Application>