ActionScript コンポーネントでの値のバインドに問題があります。私は基本的に、コンポーネントの aa 変数の値をモデルの値に設定し、モデルの値が更新されるとコンポーネント変数を自動的に更新したいと考えています。Flex でデータ バインディングがどのように機能するかを完全には理解していないと思います。これは、MXML コンポーネントを使用する場合は問題ありませんが、ActionScript クラスを使用する場合はバインディングが機能しません。
これは私が使用しているコードで、値がバインドされていません:
package
{
public class Type1Lists extends TwoLists
{
public function Type1Lists()
{
super();
super.availableEntities = super.composite.availableType1Entities;
super.selectedEntities = super.composite.selectedType1Entities;
}
}
}
package
{
public class Type2Lists extends TwoLists
{
public function Type2Lists()
{
super();
super.availableEntities = super.composite.availableType2Entities;
super.selectedEntities = super.composite.selectedType2Entities;
}
}
}
/* TwoLists.mxml */
<?xml version="1.0" encoding="utf-8"?>
<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<![CDATA[
public var __model:ModelLocator = ModelLocator.getInstance();
public var composite:Composite =
__model.selectedComposite;
[Bindable]
public var availableEntities:ArrayCollection;
[Bindable]
public var selectedEntities:ArrayCollection;
]]>
</mx:Script>
<mx:List id="availableEntitiesList" dataProvider="{availableEntities}" />
<mx:List id="selectedEntitiesList" dataProvider="{selectedEntities}" />
</mx:HBox>