Показать сообщение отдельно
Старый 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();
}