PDA

Просмотр полной версии : Перевод строки в динамическисоздаваемом текстовом поле???


Viy
13.02.2007, 19:52
Есть флешка с таким кодом

menu_xml = new XML();
System.useCodepage = true;
// Игнорируем все ненужные пробелы и переносы строк
menu_xml.ignoreWhite = true;
// Отслеживаем полную загрузку xml
menu_xml.onLoad = function(ok) {
if (ok) {
// Если xml загрузился запускаем функцию построения меню
F_createMenu();
}
};
// Загружаем menu.xml
menu_xml.load("menu.xml");
style = new TextFormat();
style.size = 10;
style.font = "Verdana";
style.align = "left";
style.htmlText=true;
style.html=true;
style.wordWrap = true;
style.textWidth = 10;

style.underline = true;
// Делаем функцию для создания меню
F_createMenu = function () {
// Заводим переменную для хранения количества элементов массива (длинны массива)
var len = menu_xml.childNodes[0].childNodes.length;
// В цикле перебираем массив
for (var i = 0; i<len; i++) {
// Для каждой кнопки создаём мувик
_root.createEmptyMovieClip("btn"+i, i);
// Для краткости создадим переменную хранящюю название кнопки
var b = _root["btn"+i];

// Создаём текстовое поле для отображения названия кнопки
b.createTextField("tf", 2, 25, 25, 200, 20);

// Применяем к тексту нужные параметры
with (b.tf) {
border = true;

multiline = true;

// Вытаскиваем из массива нужное название кнопки
text= menu_xml.childNodes[0].childNodes[i].attributes.name;
_x = menu_xml.childNodes[0].childNodes[i].attributes.x;
_y = menu_xml.childNodes[0].childNodes[i].attributes.y;
}

// Задаём для каждой кнопки ссылку для перехода по ней при нажатии
b.link = menu_xml.childNodes[0].childNodes[i].attributes.link;

b.tf.setTextFormat(style);


b._x(menu_xml.childNodes[0].childNodes[i].attributes.x);
b._y(menu_xml.childNodes[0].childNodes[i].attributes.y);
// Вешаем обработчик событий нажатия на кнопку
b.onPress = function() {
// При нажатии переходим по ссылке
getURL(this.link, "_self");
};

}
};

Есть xml файл с таким текстом:

<menu>
<item name="Привет! \r\nЭто проверка!!!! " link="http://www.ukr.net" x="240" y="45"/>
<item name="Item 2" link="http://www.mail.ru" x="325" y="65"/>

</menu>
Вопрос:
Как сделать перевод строки в нужном месте текста?
\r\n - выводится как текст...:boredom:

etc
13.02.2007, 19:55
Приведите свой XML код в надлежащий вид.

В разделе для профессионалов постят темы профессионалы only.

CorC
13.02.2007, 20:04
\r\n - выводится как текст...:boredom:
это уже обсуждали недавно
поиск посмотрите

Viy
13.02.2007, 20:12
А что не так с XML?
Я уже по разному пробовал и так '\r' и так "\r"
пробовал <br /> вставить, но все что после него идет не отображается...

это уже обсуждали недавно
поиск посмотрите
смотрел я эту тему, она до логического конца не доведена

Подскажите пожалуйста, уже 4-й день бьюсь, три книги перечитал, немогу понять в чем дело..

CorC
13.02.2007, 20:20
у тебя вместо символа \n в строке символ \\n
нужно просто сделать замену 1 символа на др
например split.join поможет в этом

etc
13.02.2007, 20:21
Viy, используйте теги для оформления XML кода.

Мыкыта
13.02.2007, 20:21
a=a.split("\\n").join("\n");

а - это твоя строка из ХМЛ, где надо \n
а в ХМЛ так и оставляй \n
и чего тут непонятно?

Viy
13.02.2007, 20:35
Спасибо огромное!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Заработало!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Мыкыта РЕСПЕКТ!!!!!!!

Viy
13.02.2007, 20:37
Вот код для тех кто будет искать в дальнейшем:confused: ;)

// Создаём обьект XML
menu_xml = new XML();
System.useCodepage = true;
// Игнорируем все ненужные пробелы и переносы строк
menu_xml.ignoreWhite = true;
// Отслеживаем полную загрузку xml
menu_xml.onLoad = function(ok) {
if (ok) {
// Если xml загрузился запускаем функцию построения меню
F_createMenu();
}
};
// Загружаем menu.xml
menu_xml.load("menu.xml");
style = new TextFormat();
style.size = 10;
style.font = "Verdana";
style.align = "left";
//style.htmlText=true;
style.html=true;
//style.wordWrap = true;
//style.textWidth = 10;

style.underline = true;
// Делаем функцию для создания меню
F_createMenu = function () {
// Заводим переменную для хранения количества элементов массива (длинны массива)
var len = menu_xml.childNodes[0].childNodes.length;
// В цикле перебираем массив
for (var i = 0; i<len; i++) {
// Для каждой кнопки создаём мувик
_root.createEmptyMovieClip("btn"+i, i);
// Для краткости создадим переменную хранящюю название кнопки
var b = _root["btn"+i];
// Аттачим из библиотеки задний фон для кнопки
//b.attachMovie("back", "back", 1);
// Создаём текстовое поле для отображения названия кнопки
b.createTextField("tf", 2, 0, 0, 200, 20);

// Применяем к тексту нужные параметры
with (b.tf) {
//border = true;
selectable = true;
multiline = true;
autoSize=true;

// Вытаскиваем из массива нужное название кнопки
text= menu_xml.childNodes[0].childNodes[i].attributes.name;
text=text.split("\\n").join("\n");
_x = menu_xml.childNodes[0].childNodes[i].attributes.x;
_y = menu_xml.childNodes[0].childNodes[i].attributes.y;
}
// Задаём ширину заднего фона
//b.back._width = b.tf._width+20;
// Устанавливаем кнопки по вертили из расчёта ширины предыдущей
//b._x = _root["btn"+(i-1)]._x+_root["btn"+(i-1)]._width+10;
//b._y = _root["btn"+(i-1)]._y*sin(360);
// Устанавливаем текстовое поле по середине кнопки
//b.tf._x = 10;
// Задаём для каждой кнопки ссылку для перехода по ней при нажатии
b.link = menu_xml.childNodes[0].childNodes[i].attributes.link;
// Выкрашиваем кнопку в заданный цвет
//var my_x = new _x(b);
b.tf.setTextFormat(style);
//b.tf.wordWrap = true;

b._x(menu_xml.childNodes[0].childNodes[i].attributes.x);
b._y(menu_xml.childNodes[0].childNodes[i].attributes.y);
// Вешаем обработчик событий нажатия на кнопку
b.onPress = function() {
// При нажатии переходим по ссылке
getURL(this.link, "_self");
};

}
};

etc
13.02.2007, 21:09
Пользователь Viy получает предупреждение за нарушение третьего пункта правил раздела и за игноирование замечания модератора.

Мыкыта
13.02.2007, 21:16
Viy это не мне респект это CorC респект я поиском пользовался =)))