Flex встроенное строковое кодирование ресурсов - PullRequest
1 голос
/ 26 сентября 2011

Я встраиваю текстовый файл в свой проект Flex и читаю его содержимое, используя следующий код:

[Embed(source = "../../data/abc.txt", mimeType = "application/octet-stream")]
private var r_Abc:Class;

...

var xx:ByteArray = new r_Abc();
var abc:String = xx.toString();

Содержимое файла abc. Проблема состоит в том, что строка, загруженная из файла, не сопоставима с другими строками, даже если при печати или просмотре в отладчике (во FlashDevelop) она выглядит вполне нормально.

trace(abc);  // abc
trace("abc" == abc);   // false

Как мне преобразовать его в правильную строку? Я пытался использовать строковые методы, такие как подстрока, для создания копии, но это не похоже на решение.

1 Ответ

1 голос
/ 28 сентября 2011

Вот мой образец:

<?xml version="1.0" encoding="utf-8"?>
<s:Application minWidth="955" minHeight="600"
               creationComplete="creationCompleteHandler(event)"
               xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark" 
               xmlns:mx="library://ns.adobe.com/flex/mx">

    <fx:Script>
        <![CDATA[
            import mx.core.ByteArrayAsset;
            import mx.events.FlexEvent;

            // my file is "ABC "
            // strangely enough if I remove the space at the end the string in code is empty
            [Embed(source="data/abc.txt", mimeType="application/octet-stream")]
            private var abcFile:Class;

            protected function creationCompleteHandler(event:FlexEvent):void
            {
                var abcByteArray:ByteArrayAsset = ByteArrayAsset(new abcFile());
                var abc:String = abcByteArray.readUTFBytes(abcByteArray.length);

                trace(abc); // ABC (has a space at the end)
                trace(abc == "ABC "); // true, but notice the space at the end
            }
        ]]>
    </fx:Script>
</s:Application>

Мое предложение - проверить пробелы, новые строки. Также попробуйте поместить какой-нибудь символ EOF в конец файла.

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