2010-02-20 45 views
1

我有勾畫出我的應用程序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_bmbrowseAndUpload()函數繪製成縮放之後。

我的意圖是,我mx:Image將顯示圖像。如圖所示,我正在分配圖像source="mymodel.img_scld_bm",這最終只顯示一個破碎的圖像圖標。

我也試過數據綁定,在我myModel類在那裏我有[Bindable] var img_scld_bm。然後嘗試設置我的mx:Image source="{myModel.img_scld_bm}" ..這似乎也沒有做任何事。所有這些編譯好,沒有警告。我認爲在這種情況下,我沒有設置觸發器或propertyChange事件來更新綁定?

有人可以幫我理解,或者提供一個例子,說明如何正確地綁定一個位圖源到一個mx:Image

回答

0

從你給的代碼,它看起來像你需要做兩件事情:

  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。

這是否行得通?