我有一个显示对象数据的页。在页的顶部有一个图标,显示该对象的图片。点击此图标将打开一个新页,允许用户拍摄新图片,并将其保存为该对象的临时新图片(不放入数据库,但应在会话中保留)
初始页面:
private var source:Object = new Object();
protected function onInitialize():void {
source = navigator.poppedViewReturnedObject;
}
稍后设置图像源时...
if (source != null) {
pic.source = source.object;
}
else {
pic.source = "no_picture_available_image.png";
}
第二页(用户可以拍照,并查看新图片):
[Bindable]
private var imageSource:Object = null;
<s:Image id="pic" width="90%" height="75%" horizontalCenter="0" source="{imageSource}" />
拍完照后...
protected function mediaPromiseLoaded(evt:Event):void {
var loaderInfo:LoaderInfo = evt.target as LoaderInfo;
imageSource = loaderInfo.loader;
}
这确实在此页面上正确显示了刚刚拍摄的图片。
要返回到旧页面,我使用navigator.popView,并用途:
override public function createReturnObject():Object {
return imageSource;
}
不幸的是,它不起作用。当从navigator.poppedViewReturnedObject读取imageSource时,它不是空的,但没有显示图像。
弹出视图后LoaderInfo是否不存在?相机照片是否不自动保存?我无法找到这些问题的答案,也无法在当前环境下使用手机进行调试。
2条答案
按热度按时间gxwragnw1#
想一想,不要把
LoaderInfo.loader
作为poppedViewReturnedObject
返回,如果我没记错的话,一个DisplayObject
只能设置为oneImage
的源,而应该是,返回LoaderInfo.loader.content.bitmapData
。BitmapData
应该是用于显示图像的原始数据。此数据可重复用于创建图像,并可设置为Image
的源。yqhsw0fo2#
问题出在我的第一页的图像声明中a-我没有设置宽度。看起来,显示的对象不能处理没有指定宽度的情况。
请注意,将装载机向后传递时工作正常。