problema de adobe flex con Base64Encoder
-
22-07-2019 - |
Pregunta
en el siguiente código:
var benq:Base64Encoder = new Base64Encoder();
benq.encode("force",0,5);
var tmp:String = benq.toString();
'tmp' resulta ser una cadena vacía, es decir, con longitud 0. ¿por qué? ¿Cómo codificar una cadena usando base64encoder?
Solución
¿Está seguro de que su código no funciona? Acabo de copiarlo y pegarlo en una aplicación de prueba y devolvió tmp como 'Zm9yY2U ='
¿Estás haciendo algo más a la var tmp? si se está depurando, asegúrese de que haya procesado la línea var tmp: String .... cuando verifique la salida
<?xml version="1.0" encoding="utf-8"?><mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="vertical"
verticalAlign="middle"
backgroundColor="white"
creationComplete="but1.label = encodeit()">
<mx:Script>
<![CDATA[
import mx.utils.Base64Encoder;
private function encodeit(): String {
var benq:Base64Encoder = new Base64Encoder();
benq.encode("force",0,5);
var tmp:String = benq.toString();
return tmp;
}
]]>
</mx:Script>
<mx:Button
id="but1"
width="100"
height="100"
/></mx:Application>
Otros consejos
¿Está utilizando Flex 3, ya que parece ser una nueva característica? También intente codificar en un bytearray usando encodeBytes y encodeUTFBytes, quizás estos funcionen mejor.
La referencia en línea está disponible de Adobe , pero supongo que lo sabes.
Ok, está funcionando. El código que publiqué era diferente de lo que realmente estaba usando. Me salteé el hecho de que llamar a toString () para Base64Encoder borra su búfer interno. Entonces, llamarlo la próxima vez volvería Una cadena vacía. Perdón por el problema.