私はロールスクリーンから画像を選択する際に問題が発生しています。私のアプリケーションはタブ付きではありませんが、その1つの部分にタブ付きビューナビゲーターがあり、タブの下にタブがあります。これらのタブの1つでは、自分が作成したWebサービスに画像をアップロードする機能があります。しかし、画像を選択するか写真を撮ると、最初のスプラッシュ画面に戻り、アプリケーションが再起動します。コンポーネントをスタンドアロン(タブ付きビューナビゲーターの外)で使用すると、画像を選択して問題なくアップロードできます。Adobe Flexモバイルでカメラロールから画像を選択するか、画像を撮影するとアプリケーションが再開されます
<s:TabbedViewNavigator id="tvn" width="100%" height="100%">
<s:ViewNavigator icon="@Embed('assets/icons/contact.png')" label="contact" width="100%" height="100%" firstView="Concern.ContactInfo" firstViewData="{data}"/>
<s:ViewNavigator icon="@Embed('assets/icons/notes.png')" label="details" width="100%" height="100%" firstView="Concern.Description" firstViewData="{data}"/>
<s:ViewNavigator icon="@Embed('assets/icons/updates.png')" label="updates" width="100%" height="100%" firstView="Concern.Updates" firstViewData="{data}"/>
<s:ViewNavigator icon="@Embed('assets/icons/upload.png')" label="uploads" width="100%" height="100%" firstView="Concern.Uploads" firstViewData="{data}"/>
</s:TabbedViewNavigator>
Concern.Uploads:
<?xml version="1.0" encoding="utf-8"?>
民間のvarのURLRequest:URLRequestの=新しいULRequest( "のhttp://mywebservice.php"); プライベートvarファイル:ファイル。
//take a new picture with the camera
protected function uploadCamera_clickHandler(event:MouseEvent):void
{
if (CameraUI.isSupported)
{
trace("camera is supported");
var myCam:CameraUI = new CameraUI();
myCam.launch(MediaType.IMAGE);
myCam.addEventListener(MediaEvent.COMPLETE,selectCompleteHandler);
}
else
{
trace("camera not supported");
statusText.text = "Camera not supported on this device.";
}
}
//select a picture from the camera roll (gallery)
protected function uploadGallery_clickHandler(event:MouseEvent):void
{
if (CameraRoll.supportsBrowseForImage)
{
trace("camera roll is supported");
var roll:CameraRoll = new CameraRoll();
roll.browseForImage();
roll.addEventListener(MediaEvent.SELECT,selectCompleteHandler);
}
else
{
trace("camera roll not supported");
statusText.text = "Camera roll not supported on this device.";
}
}
//when the selection is complete upload it
protected function selectCompleteHandler(event:MediaEvent):void
{
trace("event.data.file.url; = "+event.data.file.url);
takePhotoButton.enabled = galleryPhotoButton.enabled = false;
file = event.data.file;
file.addEventListener(Event.COMPLETE,uploadCompleteHandler);
file.addEventListener(Event.OPEN,openUploadHandler);
urlRequest = new URLRequest("http://MyWebService.php?ID=" + data.ID.toString());
statusText.text = "Uploading please wait...";
file.upload(urlRequest);
}
protected function uploadCompleteHandler(event:Event):void
{
trace("upload complete");
takePhotoButton.enabled = galleryPhotoButton.enabled = true;
statusText.text = "Photo Uploaded";
}
protected function openUploadHandler(event:Event):void
{
trace("uploading");
statusText.text = "Uploading...";
}
]]>
</fx:Script>
<s:Image source="@Embed('assets/i/logo.jpg')" horizontalAlign="center" horizontalCenter="0" bottom="0"/>
<s:Label width="100%" id="res" textAlign="left"/>
<s:Scroller width="100%" height="100%">
<s:VGroup width="100%" height="100%" verticalAlign="top" paddingLeft="15" paddingRight="15" horizontalAlign="center">
<s:VGroup width="100%" paddingTop="15">
<s:Label text="My Header" styleName="cityTitle" width="100%">
<s:filters>
<s:DropShadowFilter color="#000000"/>
</s:filters>
</s:Label>
<s:Label text="Portal" styleName="citySubtitle" width="100%">
<s:filters>
<s:DropShadowFilter color="#000000"/>
</s:filters>
</s:Label>
</s:VGroup>
<s:VGroup horizontalAlign="center" gap="25" width="100%">
<s:Button id="takePhotoButton" label="Take Photo" click="uploadCamera_clickHandler(event)" minHeight="50" width="50%"/>
<s:Button id="galleryPhotoButton" label="From Gallery"
click="uploadGallery_clickHandler(event)" minHeight="50" width="50%"/>
<s:Label id="statusText" fontSize="24" text="" color="#FFFFFF"/>
</s:VGroup>
</s:VGroup>
</s:Scroller>
は、どのような援助のために事前にありがとうございます。
JH
返信いただきありがとうございます。同じ問題である可能性があります。また、カメラを起動する前にデータを電話機に保存していただきありがとうございます。痛いですが、私は回避策を実装することができます。 – jay