Как динамически обновить изображение, используя привязку данных? - PullRequest
1 голос
/ 21 февраля 2010

У меня есть приложение main.mxml, которое выкладывает мое приложение, оно содержит кнопку «просмотреть и загрузить». И содержит изображение для просмотра загруженного пользователем изображения, например, так:

<mx:Application
<mx:Script>
    <![CDATA[

    import model.myModel;
    import control.myControl;

    // Create data model
    public var model:myModel = new myModel();
    //[Bindable]
    //private var scld_img:Bitmap;

    // Create control
    public var mycontrol:myControl = new myControl(mymodel);

</mx:Script>

<!-- Upload and view -->
<mx:Canvas id="upload" label="1: Upload Image">

   <mx:VBox>
   <mx:HBox>

   <mx:Label text="Upload an image: "/>
   <mx:Button id="btn"
      label="Browse and preview..."
      click="mycontrol.browseAndUpload();"
      buttonMode="true"
      useHandCursor="true"/>

   </mx:HBox>


<mx:Image id="mximg_upld"
   verticalCenter="0"
   horizontalCenter="0"
   source="mymodel.img_scld_bm"/>

</mx:VBox>
</mx:Canvas>
......

В моем классе myModel у меня есть img_scld_bm, в который включается функция browseAndUpload() после масштабирования.

Мое намерение состоит в том, чтобы мой mx:Image отобразил изображение. Как показано здесь, я присваиваю изображение source="mymodel.img_scld_bm", в результате отображается просто значок с разбитым изображением.

Я также попробовал привязку данных, где в моем myModel классе у меня есть [Bindable] var img_scld_bm. А потом попытался установить мой mx:Image source="{myModel.img_scld_bm}" .., который, похоже, тоже ничего не делал. Все это прекрасно компилируется, предупреждений нет. Я думаю, что в этом случае я не устанавливаю триггер или событие propertyChange для обновления привязки?

Может кто-нибудь помочь мне понять или предоставить пример того, как правильно связать источник mx:Image с каким-то растровым изображением ??

1 Ответ

0 голосов
/ 21 февраля 2010

Из кода, который вы дали, похоже, вам нужно сделать две вещи:

  1. Оберните источник фигурными скобками.

  2. Установите свойство img_scld_bm в классе модели. Привязки будут выполняться только если вы установите свойство; похоже, вы, возможно, рисуете в img_scld_bm, который существует в настоящее время, но это не приведет к обновлению изображения.

Преобразовать это:

<mx:Image id="mximg_upld" verticalCenter="0" horizontalCenter="0" source="mymodel.img_scld_bm"/>

На это:

<mx:Image id="mximg_upld" verticalCenter="0" horizontalCenter="0" source="{mymodel.img_scld_bm}"/>

Затем каждый раз, когда вы вносите изменения в img_scld_bm в модели, сбрасывайте image.source.

Это работает?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...