У меня есть:
класс A: со свойством "data: ArrayCollection".Это мой источник данных (поставщик данных), и у него есть растровые изображения.
класс B: имеет экземпляр A (называемый "Ainst") и вызывает следующий метод: C.init (Ainst.data).Для передачи провайдера данных в объект C.
класс C: имеет ссылку на провайдера данных «data» (из-за метода «init»).Он показывает arrayCollection в Images как: Image.source = data.getItemAt (0).
Но C никогда не обновляет свои изображения, то есть привязка данных не работает с этой схемой.Я поместил метатег [Bindable] во все свойства и даже классы.
класс A:
public class A{ [Bindable]public var data:ArrayCollection; }
класс B:
public class B{ [Bindable]public var Ainst:A; public var Cinst:C; public function init(){ Cinst = new C(); Cinst.init(A.data) } }
класс C:Меню изображения с 3 пунктами (растровые изображения)
<s:VGroup 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="*"
horizontalAlign="center"
paddingTop="10"
paddingBottom="10"
gap="10">
<fx:Script>
<![CDATA[
[Bindable] public var _images:ArrayCollection;
public function init( images:ArrayCollection ):void{
_images = images;
}
]]>
</fx:Script>
<ms:Image id="PreviousButton" smoothBitmapContent="true" width="55" height="55" source="@Embed(source='/../figures/upArrow.png')"/>
<ms:Image id="TopItem" smoothBitmapContent="true" maintainAspectRatio="true" x="12.5" source="{_images.getItemAt(0)}" />
<ms:Image id="MiddleItem" smoothBitmapContent="true" maintainAspectRatio="true" x="12.5" source="{_images.getItemAt(1)}"/>
<ms:Image id="BottomItem" smoothBitmapContent="true" maintainAspectRatio="true" x="12.5" source="{_images.getItemAt(3)}"/><!-- getItemAt(2).image -->
<ms:Image id="NextButton" smoothBitmapContent="true" width="55" height="55" source="@Embed(source='/../figures/downArrow.png')"/>
</s:VGroup>
Есть мысли?Благодарю.