PDA

Просмотр полной версии : разбиение txt файла


alexxx84
19.01.2007, 16:35
Товарищи флешеры! Вопрос у меня наболевший.

Создал я текстовую область. В неё дергается текст из txt-файла. Но вместо полосы прокрутки хочу применить разбиение текста, как видел где-то.
Текстовый файл там следующего типа:

\\!-- UTF8
&field_anzahl=3&

&headline_1=ЗАГОЛОВОК
&text_1=<font size="11">ОСНОВНОЙ ТЕКСТ
</font>

&headline_2=ЗАГОЛОВОК
&text_2=<font size="11">ОСНОВНОЙ ТЕКСТ
</font>

Тут всё понятно, но что писать в коде.. ума не приложу. Знаю, что просто там, но не догоняю. ActionScript слабо знаю. Подскажите, пожалуйста, что нужно сделать для разбиения в самой проге и чтобы кнопари нормально работали.

Kikasso
19.01.2007, 16:40
Напишите нормальный XML вместо этого и работайте с классом XML во флеше.

alexxx84
19.01.2007, 18:17
А можно чуть подробнее? Что примерно должно быть в XML файле?

CorC
20.01.2007, 11:03
судя из 1 поста вам лучше использовать LoadVars
хелп по нему замечательный, или поиск на форуме

alexxx84
22.01.2007, 14:11
Не знаю, то ли это. Можно там сделать такую вещь, чтобы автоматически генерились странички текста (перелистываемые по стрелочкам) ?

KLieriK
22.01.2007, 14:26
xml file:
<?xml version="1.0" encoding="utf-8"?>
<nod>
<nod title='ЗАГОЛОВОК'>
<text>ОСНОВНОЙ ТЕКСТ</text>
</nod>
<nod title='ЗАГОЛОВОК'>
<text>ОСНОВНОЙ ТЕКСТ</text>
</nod>
</nod>

AS code:

function loadXML(loaded) {
if (loaded) {
xmlNode = this.firstChild;
total = xmlNode.childNodes.length;
for (i=0; i<total; i++) {
trace (xmlNode[i].attributes.title);//выведет заголовок
trace (xmlNode[i].firstChild.value);//выведет основной текст
}
}
}

xmlData = new XML();
xmlData.ignoreWhite = true;
xmlData.onLoad = loadXML;
xmlData.load("file.xml");

ЗЫ: не проверял. Жми F1 и почитай хелп по XML классу
Выделенное - тут возможно что-то напутал.

alexxx84
22.01.2007, 14:57
Большое спасибо! Сегодня проверю

alexxx84
22.01.2007, 17:25
Примите мои извинения, но туго доходит до новоявленного флешера. Пытаюсь по разному подкопаться до истины... то html, то txt, то xml пытаюсь добавить... Тяжело мне код даётся. XML - вообще тёмный лес. F1 не помог)))
Очень вас прошу помочь.

p.s.
Всё-таки идея с txt файлом показалась мне более выполнимой (хотя трудно судить, в примерах с xml ничего подобного не видел, не знаю как там кнопки привязать). Идеальный вариант - с подгружаемой html-кой. Но это мнение дилетанта.

p.p.s.
Здесь нужно ещё учесть, что нужно будет переходить в этом тексте по ссылям, открывая другой раздел в той же флешке.

Умоляю, разжуйте для головы кипящей

CorC
22.01.2007, 17:33
в ХМЛ
<?xml version="1.0" encoding="utf-8"?>
<nod>
<nod title='ЗАГОЛОВОК1'>
ОСНОВНОЙ ТЕКСТ1
</nod>
<nod title='ЗАГОЛОВОК2'>
ОСНОВНОЙ ТЕКСТ2
</nod>
</nod>

во флеш

function loadXML(loaded) {
if (loaded) {
var xmlNode = this.firstChild;
var nodes = xmlNode.childNodes;
for (i=0; i<nodes.length; i++) {
trace (nodes[i].attributes["title"]);
trace (nodes[i].firstChild.toString());
}
//next steps
}
}
xmlData = new XML();
xmlData.ignoreWhite = true;
xmlData.onLoad = loadXML;
xmlData.load("file.xml");


потом уже текст вносишь в текстовые поля или еще что

CorC
22.01.2007, 17:41
в качестве там next steps могу предложить такое:

TextField1.Text = xmlData;

где xmlData это что-то из тех trace
а TextField1 это текстовое поле

Kikasso
22.01.2007, 17:57
.text пишется с маленькой буквы

alexxx84
22.01.2007, 17:58
Создал новый докмент, для слоя Layer 1 указал action, как сказано выше (разумеется с моим именем файла, файл fla и xml находятся в одной директории).
Создал XML файл. Вписал в него точно тот текст, что вы сказали, но абсолютно ничего не отображается.
В окне Output вижу текст:
"ЗАГОЛОВОК1
ОСНОВНОЙ ТЕКСТ1
ЗАГОЛОВОК2
ОСНОВНОЙ ТЕКСТ2"

CorC
22.01.2007, 17:59
.text пишется с маленькой буквы
ну ты еще к ";" придерись

берешь создаешь 2 массива, заголовки и тескт
и вместо trace присваивание делаешь

alexxx84
22.01.2007, 18:03
текст отобразился, извиняйте, что голову морочил. Сейчас в swf-ке отображается весть текст с кодом

Kikasso
22.01.2007, 18:09
ну ты еще к ";" придерись
Что за обиды? Я не придираюсь, я чуть-чуть поправляю.
";" не обязательно писать, достаточно строку перевести.

alexxx84
22.01.2007, 18:09
и.. это всё? Я не совсем понял.
Как будет работать переключение по заголовкам? Они должны работать как отдельные страницы.

CorC
22.01.2007, 18:52
хоть asfunction изучи
хоть текст пехай как html
что можно посавить в св-ве TextField

да я не обижаюсь

alexxx84
22.01.2007, 19:00
Ничего не понимаю. А можно без XML? Я же привёл пример текстового документа. Что нужно сделать, чтобы SWF файл с ним корректно работал?

CorC
22.01.2007, 19:02
тогда вам прямая дорога в LoadVars он как раз все & и парсит сам

alexxx84
23.01.2007, 10:26
Ясно... Только как это делается, я как раз и спрашивал. В форуме так и не нашёл темы с ответом на мой вопрос.

CorC
23.01.2007, 10:35
поищем вместе?
http://livedocs.macromedia.com/flash/8/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00002323.html

alexxx84
24.01.2007, 18:14
Я понял так, что на кнопке должно стоять следующее

on(release) {
loadVariables("file.txt", "_root");
}[iNils: Для оформления своего кода, надо использовать теги ]

только вместо file будет стоять переменная, которая будет изменятся при нажатии... а как она будет выглядеть? Какой скрипт должен быть в текстовом поле?

CorC
25.01.2007, 10:12
родился? живи...
твое последнее сообщение вообще к чему?
раз залез сюда, купи книжку умную и почитай
а то 3 страницы мучаешь нас непонятно чем

Kikasso
25.01.2007, 10:23
alexxx84, вам русским по белому сказано: LoadVars
а вы понимаете это как loadVariables
Ну как так можно?