AdobeTV のビデオから、例の empWeb (LiveCycle Data Services) で遊んでみました。Flex Builder 3 (FB3) では、すべて正常に動作します。これを Flash Builder 4.0 Beta (FB4) で試したところ、うまくいきませんでした。元の xmlns 宣言 (2009、spark、halo) を FB3 (2006) の宣言に置き換えたところ、機能しました。理由を説明していただけますか?
デフォルトの SDK (FB3 には Flex 3.2、FB4 には Flex 4.0) を使用しています。これを調査しました (3 つのソース コード例を参照してください)。ソース #1 は FB3 および FB4 で正常に動作しますが、ソース #2 は FB4 コンパイル エラー メッセージを表示します。
「mxmlContentFactory」の初期化子で、型 flex.samples.crm.employee.Employee をターゲット配列要素型 mx.core.IVisualElement に割り当てることができません
ソース #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>