apache-flex Adobe Air移动的+相机-保留图像

ttp71kqs  于 2022-11-01  发布在  Apache
关注(0)|答案(2)|浏览(271)

我有一个显示对象数据的页。在页的顶部有一个图标,显示该对象的图片。点击此图标将打开一个新页,允许用户拍摄新图片,并将其保存为该对象的临时新图片(不放入数据库,但应在会话中保留)
初始页面:

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是否不存在?相机照片是否不自动保存?我无法找到这些问题的答案,也无法在当前环境下使用手机进行调试。

gxwragnw

gxwragnw1#

想一想,不要把LoaderInfo.loader作为poppedViewReturnedObject返回,如果我没记错的话,一个DisplayObject只能设置为oneImage的源,而应该是,返回LoaderInfo.loader.content.bitmapDataBitmapData应该是用于显示图像的原始数据。此数据可重复用于创建图像,并可设置为Image的源。

yqhsw0fo

yqhsw0fo2#

问题出在我的第一页的图像声明中a-我没有设置宽度。看起来,显示的对象不能处理没有指定宽度的情况。
请注意,将装载机向后传递时工作正常。

相关问题