Помощь · Поиск · Пользователи · Календарь
Полная версия этой страницы: Разбиение по сепараторам <SP>, <BR>
Flash Zone Forum > Macromedia Flash > ActionScript
Nihil
Есть текст такого типа: A<SP>B<SP>C<BR>D

Допустим делаю для <SP>:

Код
var my_array:Array = macros.split("<SP>");
for (var i = 0; i<my_array.length; i++) {
  //trace(my_array[i]);
resultat += my_array[i];
}

Но выводит как и было.

Походу флеш как-то игнорирует эти теги, т.к. если сразу присваиваю этот текст переменной, то в текстовом поле сразу выводится без тегов, при этом в output разбиение  тогда происходит.
MustLive
Nihil

Твой код рабочий и разбивает текст по указанному сепаратору.

Цитата
Есть текст такого типа

Где этот текст находится - в текстовом поле или в переменной? Потому что будет работать в обоих случаях. И будет корректно работать как при выводе в Output, так и в другое текстовое поле.
Nihil
Цитата(MustLive @ 9.04.2012 - 03:47) *
Nihil

Твой код рабочий и разбивает текст по указанному сепаратору.
Где этот текст находится - в текстовом поле или в переменной? Потому что будет работать в обоих случаях. И будет корректно работать как при выводе в Output, так и в другое текстовое поле.

Если вписываю текст в переменную, то при тестировани сепортатор игнорируется (т.е. если в переменной A<SP>B, то в поле ввода выводится сразу AB). А если в вручную ввожу в поле ввода, то в поле результата выводится текст без изменений

upd: Прилепил swf-файл к посту
MustLive
Nihil

Когда я отвечал тебе, я не только прочитал код в твоём посте и сделал выводы о его работоспособности. Я ещё и во Флеш редакторе его перепроверил в обоих вариантах: с введением текста в переменную и в текстовое поле.

Цитата
Прилепил swf-файл к посту

Посмотрел я на эту флешку - текст из поля не обрабатывается должным образом. Отдекомпилил, посмотрел код и всё стало ясно - ты код неправильно записал. Ты обращаешься к тестовым полям "по переменными" (по полю Var). Что является устаревшим способом (о чём я уже писал на форуме), из первых версий флеша, и у него есть множество ограничений. В том числе, как ты уже увидел на своём примере, некорректно выполняется split. Не говоря уже о том, что ты используешь устаревший метод указания кода на объектах, а нужно указывать код в кадр.

Правильный метод работы с текстовыми полями: указание имени объекта (Instance name) и обращение к свойству text этих объектов (при этом без указания поля Var).

Рабочий код для кнопки - декомпилятор мне вместо цикла for указал while smile.gif.
Код
on (release) {
    var my_array = _root.macros.text.split("<SP>");
    var i = 0;
    while (i < my_array.length) {
        _root.resultat.text += my_array[i];
        i++;
    }
}
Русская версия IP.Board © 2001-2013 IPS, Inc.