PDA

Просмотр полной версии : Загрузка большого текстового файла


CaXaP
15.07.2008, 23:14
Здравствуйте!

У меня такая проблема: Я пытаюсь загрузить во флешку файл с большим количеством текста (примерно 2кб) в текстбокс. При этом грузится лишь часть текста, а остальная "обрезается" - видимо проблема в ограничениях скачиваемого текста или размера текстбокса...

Подскажите, пожалуйста, как загрузить и показать текст целиком.

Заранее спасибо.

Просьба ногами не бить - в поиске много тем про загрузку текста, но своей проблемы там не нашёл :)

Волгоградец
16.07.2008, 10:55
Что такое "текстбокс"? Компонент, динамическое текстовое поле? Стоит autosize, wordwrap или др. свойства?

Alex_beginner
16.07.2008, 13:11
Здравствуйте CаХаР!

Вопрос: С помощью какого класса или функции загружаете текстовые данные?

CaXaP
16.07.2008, 18:49
да я код лучше выложу весь :)

var loader:LoadVars = new LoadVars();

initialize()
{
loader.load("welcome.txt");
stage.showMenu = false;
TB_welcome.html=true;
TB_welcome.autoSize = false;
}

loader.onLoad = function(success)
{
if (success)
{
TB_welcome.htmlText=loader.data1;
}
else TB_welcome.htmlText="error";
}

initialize();

crazyone
16.07.2008, 19:28
TB_welcome.autoSize = false;
Это вы зачем октлючили автосайз? Ясное дело, что не влезает и не показывается. Включайте обратно или приделывайте к текстовому полю скролл.

Alex_beginner
16.07.2008, 19:40
СаХаР! Вероятно дело в том, что полученные текстовые данные нужно перехватить до того, как будет произвена разборка пар имя-значение, т.е. в обработчике onData. событие onData, возникающее после того, как текст будет закачан, но до того, как он будет разобран и на основании прописанных в нем пар имя-значение будут созданы свойства объекта LoadVars. В качестве параметра обработчику этого события передается строка, хранящая импортированный текст. Пример:

var loader:LoadVars=new LoadVars();
loader.load("welcom.txt");
loader.onData=function(str:String):Void {
pole.htmlText=str;
delete loader;
};

Красным выделен немаловажный момент: "Не забывайте удалять лоадер, в противном случае он может замедлять работу приложения и жрать дополнительные ресурсы!".

Также, считаю вероятен вариант решения проблемы, предложенный crazyone!

crazyone
16.07.2008, 19:57
Если только в самой строке нету где-то ампресанда(&), то во флеше нет ограничений на длину LoadVars. Т.е. теоретически должны быть какие-то, но 2 Кб спокойно загружаются и нигде не обрезаются.

Только что попробовал ~2Мб текста подгрузить. Грузилось долго, но все-равно ничего нигде не обрезалось.
Так что проблемма не в этом.

Alex_beginner
16.07.2008, 20:06
Но мы не знаем какой текст грузит СаХаР, поэтому трудно судить есть там амперсанд или его нет, ну и тд, поэтому считаю, оба варианта равновероятными. Я думаю, СаХаР не сильно расстроиться, если он перенесет код из onLoad в onData и одновременно включит автосайз! Видите ли зачем лишний раз заставлять работат парсер, даже если проблема не в этом.

CaXaP
16.07.2008, 21:47
Аааа! проблема оказывается была в скроллинге, а не в загрузке :)
Я ошибся, и вместо 77 строчек, для прокрутки было доступно лишь 67...

Всё равно всем спасибо за помощь.