2015-01-16 6 views
0
import flash.media.CameraRoll; 
import flash.display.Loader; 
import flash.media.MediaPromise; 
import flash.display.Bitmap; 
import flash.display.BitmapData; 
import flash.events.MediaEvent; 
import flash.events.Event; 

backbtn6.addEventListener(MouseEvent.CLICK, back); 

var cameraroll:CameraRoll; 
var loader:Loader; 
var promise:MediaPromise; 
var bitmap:Bitmap; 
var bitmapdata:BitmapData; 

openpic.addEventListener(MouseEvent.CLICK, selectpic); 
function selectpic(e:MouseEvent):void 
{ 
if(CameraRoll.supportsBrowseForImage) 
{ 
    cameraroll = new CameraRoll(); 
    cameraroll.addEventListener(MediaEvent.SELECT, loadpic); 
    cameraroll.browseForImage(); 
} 

} 

function loadpic(e:MediaEvent):void 
{ 
promise = e.data as MediaPromise; 
loader = new Loader(); 
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, showpic); 
loader.loadFilePromise(promise); 
} 

function showpic(e:Event):void 
{ 
if(bitmap != null) 
{ 
    removeChild(bitmap); 
} 

var originalWidth:int = Bitmap(e.currentTarget.content).width; 
var originalHeight:int = Bitmap(e.currentTarget.content).height; 

bitmapdata = new BitmapData(originalWidth,originalHeight); 
bitmap = new Bitmap(bitmapdata); 
bitmap.bitmapData = Bitmap(e.currentTarget.content).bitmapData; 

bitmap.x = 0; 
bitmap.y = 0; 

addChild(bitmap); 
} 

AIR를 사용하여 Android 용 my as3 코드입니다. 나는 ather 사람들의 코드를 보면서이 코드를 적었다. 내 안드로이드 전화에서 작동하지 않습니다. 내 코드가 무엇입니까? ... 도와주세요 ... 어떻게 할 수 있습니까 ??안드로이드 (as3)에서 CameraRoll에 대한 내 코드가 작동하지 않는 이유는 무엇입니까?

yoy에 해결책이 있다면, 개발에 대한 나의 즐거움. 저는 한 달 동안 as3을 공부하고 있습니다

+0

오류 메시지가 있습니까? –

+0

"작동하지 않습니다"는 문제에 대한 설명으로는 충분하지 않습니다. 그것이해야 할 일과 실제로하고있는 일을 알려줌으로써 정교 해집니다. – BotMaster

+0

내 예를 보면 APK가 카메라 롤을 엽니 다. 그러나 이미지를 선택하면 화면에 표시되지 않습니다. –

답변

0

몇 가지 세부 사항을 귀하의 질문에 언급 된대로, 나는 이것이 사용 권한의 문제라고 생각하고 코드는 괜찮습니다. 이 같은 </application> 전에

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 

당신은 your_app 응용 프로그램 (프로젝트)의 이름 당신의 your_app-app.xml,에 직접 추가 할 수 있습니다 :이 권한을 추가하려고 물론

<application xmlns="http://ns.adobe.com/air/application/15.0"> 

    <!-- ... --> 

    <android> 
     <manifestAdditions> 
      <![CDATA[<manifest> 
       <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
      </manifest>]]> 
     </manifestAdditions> 
    </android> 
</application> 

, XML의 다른 내용을 건드리지 말고, 단지 <android>...</android> 부분을 추가 (또는 이미 있다면 편집)해야합니다.

또는 단순히 안드로이드 설정 xxx파일 메뉴에서 액세스 할 수있는 AIR 버전입니다 대화 상자에 대한 AIR의 XXX을 사용하여, 다음 권한에 탭으로 이동하고이 같은 WRITE_EXTERNAL_STORAGE 권한 (선택의 과정이) 플래시를위한 것입니다

enter image description here

여전히 항상 아무것도 없어 경우 오류를 잡으려고 CameraRoll 객체에 ErrorEvent 이벤트 리스너를 추가하려고 :

cameraroll.addEventListener(
    ErrorEvent.ERROR, 
    function(e:ErrorEvent):void { 
     log.text = e.text; 
    } 
) 

희망이 도움이 될 수 있습니다.

+0

오, 고마워요! 너무 도움이된다! 고맙습니다 –