2012-05-29 2 views
1

ByteArray를 Javascript 함수에서 Flex Actionscript 함수로 전달해야합니다. 함수Flex AS의 Javascript에서 ByteArray를 읽습니다.

function deviceResp(s){ 
    var obj = document.getElementById('smera'); 
    obj.deviceRespFx(s);  
} 

내 :

public function imageRespFxs(value:String):void{ 
    Alert.show(value.length); 
} 

EDIT : 콜백 함수가 상기 방법으로 "의 creationComplete"

public function initDevice():void{     
           ExternalInterface.addCallback("deviceRespFx",imageRespFxs); 

     } 

에로드 는 아래 JS를 사용 봤나 바이트 배열을 String으로 변환하는 inturn이므로 데이터가 손실되므로 아무도 도움을받을 수 없습니다. JS에서 AS 함수로 바이트 배열을 전달하는 방법. 샘 데한에

+0

외침 AS3 ('ExternalInterface.addCallback ("deviceRespFX", imageRespFxs);') –

+0

무엇이 잘못 되었습니까? 경고가 표시되지 않습니까? 알리미는 예상 한 길이를 표시하지 않습니까? –

+0

안녕하세요 샘, 콜백에 대한 호출을 수정하고 내 AS 함수에서 응답을 얻을 수 있지만 문제는 JS에서 AS로 바이트 배열을 전달하는 것입니다. ExternalInterface.call이 ByteArray로 입력 변수를 허용하지 않기 때문에 –

답변

1

모든 감사

마침내 샘 코멘트에 의해 암시로는 Base64로 작업을 얻는 것을 처리하게한다.

내 자바 코드에서 첫째

이 같은 Base64로 문자열로 이미지를 변환 :

private String convertBase64String(BufferedImage image){ 

    ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
    Base64OutputStream bi64 = new Base64OutputStream(baos); 
    try{ 
    ImageIO.write(imgRegistration1, "png",bi64); 
    baos.flush();    
    String data = baos.toString("UTF-8"); 
    return data; 
    }catch(Exception e) 
    { 
     e.printStackTrace(); 
    } 
    return null; 

} 

나는 방법으로 굴곡이를 보내 여기

는 코드의 peice이 다른 사람을 위해 도움이 될 수있다 이 같은 동일한를 디코딩 :

import mx.utils.Base64Decoder; 
    private var base64Dec:Base64Decoder; 
    public function imageRespFxs(value:String):void{     
    var byteArr:ByteArray; 
      base64Dec = new Base64Decoder(); 
      base64Dec.decode(value); 
      byteArr = base64Dec.toByteArray(); 
      imgId.load(byteArr); 

     } 

덕분에 당신은 당신이 s의 위치를 ​​표시해야합니다

관련 문제