Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 05.02.2013, 13:55
Awesomni вне форума Посмотреть профиль Отправить личное сообщение для Awesomni Найти все сообщения от Awesomni
  № 1  
Ответить с цитированием
Awesomni
 
Аватар для Awesomni

Регистрация: Sep 2012
Сообщений: 14
Attention Как быть с большим большим текстом?

Добрый день, знатоки.
Гружу данные (текст) URLLoader-ом.
Из этого текста мне нужно вырвать кусочек.
Но беда в том, что текст слишком большой и не умещается в String (который, как я выгуглил не может быть более 64Кб).

Как мне поступить в такой ситуации?
Код на всякий случай прилагаю.
Код AS3:
package 
{
 
	import flash.display.MovieClip;
	import flash.net.*;
	import flash.events.Event;
 
 
	public class Main extends MovieClip
	{
 
		private var _params:URLVariables = new URLVariables();
		private var _urlLoader:URLLoader;
		private var _urlRequest:URLRequest = new URLRequest();
 
 
		public function Main()
		{
			_urlRequest.url = 'тут ссылка на огромный текстовый файл';
			_urlRequest.method = URLRequestMethod.GET;
			_urlLoader = new URLLoader(_urlRequest);
			_urlLoader.addEventListener(Event.COMPLETE, traceResult);
			_urlLoader.load(_urlRequest);
		}
		private function traceResult(e:Event):void
		{
			trace(_urlLoader.data);
		}
	}
}

Старый 05.02.2013, 14:10
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 2  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Но беда в том, что текст слишком большой и не умещается в String (который, как я выгуглил не может быть более 64Кб).
Размер строки:
Цитата:
-String size: 1,073,741,823 bytes (2^30 - 1)
а 64 килобайта это то, что можно передать POST запросом (кстати замените у себя GET на POST).

Может есть возможность загрузить текст как отдельный txt файл?

Старый 05.02.2013, 14:20
Awesomni вне форума Посмотреть профиль Отправить личное сообщение для Awesomni Найти все сообщения от Awesomni
  № 3  
Ответить с цитированием
Awesomni
 
Аватар для Awesomni

Регистрация: Sep 2012
Сообщений: 14
Гм... а как же быть тогда? Как его загрузить отдельным файлом?

Старый 05.02.2013, 14:26
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 4  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Просто ссылку на файл указать в URLRequest и так же URLLoader'ом скачать
ну или, если его нет, то на стороне сервера сформировать текстовый файл и передать его флешке

Старый 05.02.2013, 14:41
iflamberg вне форума Посмотреть профиль Отправить личное сообщение для iflamberg Найти все сообщения от iflamberg
  № 5  
Ответить с цитированием
iflamberg
 
Аватар для iflamberg

Регистрация: Jan 2009
Сообщений: 1,651
2caseyryan: а он, извени, сейчас что делает? Он зачем-то у URLRequest выставил метод GET, но никаких данных этим методом не передает. А на получаемые данные не влияет выставленный .method. Т.е. он просто грузит текстовый файл в URLLoader по ссылке, вот и все.

Как уже сказали -String size: 1,073,741,823 bytes (2^30 - 1)
Около 64кб - максимальный текст в TextField. Но вы им не пользуетесь.
А данные передаваемые URI методом GET не ограничиваются протоколом HTTP, но ограничиваются бразуерами и всякими проксями. В современных браузерах это 2-8кб, но я бы не стал отсылать этим методом больше 256 байт. Но в любом случае, я не вижу, чтобы вы метод GET использовали вообще.

Отсюда: никаких проблем у вас не должно быть, если только у вас там текстовый файл гигабайтами не исчисляется.
__________________
мой пустой блог

Старый 05.02.2013, 15:03
Awesomni вне форума Посмотреть профиль Отправить личное сообщение для Awesomni Найти все сообщения от Awesomni
  № 6  
Ответить с цитированием
Awesomni
 
Аватар для Awesomni

Регистрация: Sep 2012
Сообщений: 14
Когда я вывожу текст через trace я получаю в середине его такую строку [... text truncated].
Метод, я полагаю, никак не влияет на получаемый результат. Может забудем про него?
Браузер никак влиять не может, ибо я это выполняю в Flash CS6.

Старый 05.02.2013, 15:26
iflamberg вне форума Посмотреть профиль Отправить личное сообщение для iflamberg Найти все сообщения от iflamberg
  № 7  
Ответить с цитированием
iflamberg
 
Аватар для iflamberg

Регистрация: Jan 2009
Сообщений: 1,651
ну, так может это trace просто обрезает свой вывод, чтобы не кидать в буфер мегабайты? Сделайте скажем trace (str.substr(str.length-40)); - это соответсвует концу файла? Вообще str.length соответствует длине файла?
__________________
мой пустой блог

Старый 05.02.2013, 16:17
Awesomni вне форума Посмотреть профиль Отправить личное сообщение для Awesomni Найти все сообщения от Awesomni
  № 8  
Ответить с цитированием
Awesomni
 
Аватар для Awesomni

Регистрация: Sep 2012
Сообщений: 14
Да, e.target.data.length возвращает верную длину. Операции со строками работают на отлично. Проблема была, действительно, в trace. Спасибо за помощь. Теперь всё хорошо, дальше справлюсь сам

Создать новую тему Ответ Часовой пояс GMT +4, время: 22:21.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
string , URLLoader()
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 22:21.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.