Adobe Flex проблема с Base64Encoder - PullRequest
1 голос
/ 14 января 2009

в следующем коде:

var benq:Base64Encoder = new Base64Encoder();
benq.encode("force",0,5);
var tmp:String = benq.toString();

'tmp' оказывается пустой строкой, то есть длиной 0. Зачем? Как кодировать строку с помощью base64encoder?

Ответы [ 3 ]

3 голосов
/ 14 января 2009

Вы уверены, что ваш код не работает? Я просто скопировал и вставил его в тестовое приложение, и оно вернуло 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>
0 голосов
/ 14 января 2009

Хорошо, это работает. Код, который я разместил, отличался от того, что я фактически использовал. Я пропустил тот факт, что вызов toString () для Base64Encoder очищает свой внутренний буфер Таким образом, вызов его в следующий раз вернется пустая строка. Извините за беспокойство.

0 голосов
/ 14 января 2009

Используете ли вы Flex 3, как кажется, новую функцию? Также попробуйте выполнить кодирование в bytearray с использованием encodeBytes и encodeUTFBytes, возможно, они лучше работают.

Онлайн-справка доступна от Adobe , но, думаю, вы это знаете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...