我有一个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
源绑定到某个位图的示例吗?
答案 0 :(得分:0)
根据您提供的代码,您似乎需要做两件事:
用大括号包裹来源。
在模型类中设置属性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。
这有用吗?