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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 05.02.2007, 08:30
Anton S. Chegus вне форума Посмотреть профиль Отправить личное сообщение для Anton S. Chegus Найти все сообщения от Anton S. Chegus
  № 1  
Ответить с цитированием
Anton S. Chegus

Регистрация: Feb 2007
Сообщений: 2
Question Как поместить в Flash текст из файла?

Привет всем. На одном из этапов программирования графической оболочки для информационного терминала столкнулся с проблемой, на решение которой очень мало времени.

Задача такая:

Нужно текст из некоторого *.txt файла, посредством ActionScript поместить в текстовое поле, но таким образом, чтобы не появлялся ScrollBar. Т.е. на экране должен появлятся не весь текст, а только часть, например с 1 по 20 строки. И посредством экранных кнопочек [>>] и [<<] появлялись бы остальные фрагменты текста (с 21 по 40, с 41 по 60 и т.д.)

Есть ли возможность читать из файла с заданной позиции до заданной позиции, или возможность загрузить файл в массив, предварительно поделив его на строчки определенной длинны?

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

Регистрация: Jul 2006
Адрес: Земля>Россия>Вологда
Сообщений: 3,056
Отправить сообщение для CorC с помощью ICQ Отправить сообщение для CorC с помощью MSN Отправить сообщение для CorC с помощью Skype™
поищите по поиску
недельку назад было то же самое
__________________
"We Are The Champions My Friends!" Queen

Старый 05.02.2007, 11:29
Kogrom вне форума Посмотреть профиль Отправить личное сообщение для Kogrom Посетить домашнюю страницу Kogrom Найти все сообщения от Kogrom
  № 3  
Ответить с цитированием
Kogrom
 
Аватар для Kogrom

Регистрация: Aug 2005
Адрес: Уфимец в СПб
Сообщений: 360
Отправить сообщение для Kogrom с помощью ICQ
Эх, поробую без поиска сам решить эту задачку для начинающих отвечальщиков...
Код работает в МХ. Нужны 2 кнопки и поле для ввода типа динамик_текст
Код:
System.useCodepage = true;
//Текстовый файл грузим с помощью XML
var my_xml = new XML();
var my_array = new Array();
// Число параграфов
var elCount = 0;
// Текущий параграф
var myPara = 0;
my_xml.load("text.txt");
//Метод onData применяем, чтоб текстовый файл
//  не был разобран как XML
my_xml.onData = function(s) {
	//Указатели на начало и конец выделяемой строки
	var vector = 0;
	var oldVector = 0;
	// Число строк для абзаца
	var stringCount = 0;
	h_str = "";
	//Для отладки выводим информацию о загрузке
	if (s == undefined) {
		trace("Файл не найден");
	} else {
		trace("Данные успешно загружены");
	}
	my_str = s;
	//Загружаем по кускам в массив
	do {
		// Ищем символы перехода на следущую строку
		vector = my_str.indexof('\r\n', oldVector);
		// Если строка не последняя, просто копируем ее
		if (vector > -1) {
			// Выделяем строку, отбросив \n
			h_str = my_str.substring(oldVector, vector+1);
		} else {
			// Иначе копируем и выставляем наш флаг конца файла
			vector = my_str.length;
			h_str = my_str.substring(oldVector, ks.length);
			vector = -1;
		}
		// Если уже загружены 3 строки в параграф,
		//   увеличиваем счетчик числа параграфов
		if (stringCount > 2){
			elCount++;
			stringCount = 0;
		}
		//Добавляем к абзацу выделенную строку 
		my_Array[elCount]+=h_str;
		stringCount++;
		if (oldVector+4 > my_str.length){
			vector = -1;
		} else {
			oldVector = vector+2;
		}
	} while (vector > -1)
	//Для отладки выводим элемент массива
	trace(my_Array[1]);
	//Загружаем первый параграф в наше поле для текста
	my_txt.text = my_Array[0]
};

// Функция для ввода в поле текста следующего параграфа
function myFoward() {
	if (myPara < elCount) myPara++;
	my_txt.text = my_Array[myPara];
}

// Функция для ввода в поле текста предыдущего параграфа
function myBack() {
	if (myPara > 0) myPara--;
	my_txt.text = my_Array[myPara];
}

forward_btn.onRelease = function () {
	myFoward();
}

back_btn.onRelease = function () {
	myBack();
}

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

Регистрация: Jun 2004
Адрес: Москва
Сообщений: 475
Не ясно, зачем использовать XML если грузишь текст. Есть _txt.scroll и _txt.maxhscroll, не вижу нужды использования XML в данной ситуации

Старый 05.02.2007, 12:22
flastar вне форума Посмотреть профиль Отправить личное сообщение для flastar Посетить домашнюю страницу flastar Найти все сообщения от flastar
  № 5  
Ответить с цитированием
flastar
 
Аватар для flastar

Регистрация: May 2006
Адрес: Гродно
Сообщений: 249
Отправить сообщение для flastar с помощью ICQ Отправить сообщение для flastar с помощью Skype™
Тема обсуждалась очень много раз!

Старый 05.02.2007, 13:01
Kogrom вне форума Посмотреть профиль Отправить личное сообщение для Kogrom Посетить домашнюю страницу Kogrom Найти все сообщения от Kogrom
  № 6  
Ответить с цитированием
Kogrom
 
Аватар для Kogrom

Регистрация: Aug 2005
Адрес: Уфимец в СПб
Сообщений: 360
Отправить сообщение для Kogrom с помощью ICQ
Цитата:
Сообщение от Futs
Не ясно, зачем использовать XML если грузишь текст. Есть _txt.scroll и _txt.maxhscroll, не вижу нужды использования XML в данной ситуации
Наверно я что-то не понял, но требовалось загрузить информацию из файла типа text.txt (то есть произвольного текстового файла). Как это сделать с помощью _txt.scroll и _txt.maxhscroll не знаю. Хотелось бы посмотреть пример.

Согласен со всеми, что тема много раз обсуждалась, просто я давно не программировал в AS - вот решил маленькую тренировку сделать.

Старый 05.02.2007, 16:46
Anton S. Chegus вне форума Посмотреть профиль Отправить личное сообщение для Anton S. Chegus Найти все сообщения от Anton S. Chegus
  № 7  
Ответить с цитированием
Anton S. Chegus

Регистрация: Feb 2007
Сообщений: 2
Kogrom, спасибо огромное за подробный комментарий

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

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

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


 


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


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