Adobe Flex проблема с Base64Encoder
-
22-07-2019 - |
Вопрос
в следующем коде:
var benq:Base64Encoder = new Base64Encoder();
benq.encode("force",0,5);
var tmp:String = benq.toString();
'tmp' оказывается пустой строкой, то есть длиной 0. Зачем? Как кодировать строку с помощью base64encoder? Р>
Решение
Вы уверены, что ваш код не работает? Я просто скопировал и вставил его в тестовое приложение, и оно вернуло tmp как 'Zm9yY2U ='
Ты что-нибудь еще делаешь с var tmp? при отладке убедитесь, что при проверке вывода он обработал строку var tmp: String ....
<?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>
Другие советы
Используете ли вы Flex 3, поскольку это новая функция? Также попробуйте выполнить кодирование в bytearray, используя encodeBytes и encodeUTFBytes, возможно, они будут работать лучше.
Онлайн-справка доступна из Adobe , но я думаю, вы это знаете.
Хорошо, это работает. Код, который я разместил, отличался от того, что я фактически использовал. Я пропустил тот факт, что вызов toString () для Base64Encoder очищает свой внутренний буфер Таким образом, вызов его в следующий раз вернется пустая строка. Извините за беспокойство.