Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Запись в массив изменений в TextField (http://www.flasher.ru/forum/showthread.php?t=175976)

Parsley 28.02.2012 14:23

Запись в массив изменений в TextField
 
Как реализовать? Переменная одна передается из JS в виде строки (работает),
содержание строки меняется, отправляет в TextField (обычное текстовое поле в Flash). Надо отслеживать эти изменения и записывать в массив (история) или строчкой, то что менялось в TextField-e.
Например.
В текстовом поле появляются,
строки:

сначало
1. set:red

потом
2. set:yellow

далее
3. set:green
и т.д.

Надо чтобы все события отслеживались и записывались в какую-нибудь переменную (одной строкой т.е. так: set:red, set:yellow, set:green ) или в массив.

:o

Inet_PC 28.02.2012 14:43

Ну а в чем проблема от? В момент
Цитата:

Переменная одна передается из JS в виде строки (работает),
передачи строки, смотрите, если уже, что-то есть, то добавляете в конец массива текущее значение, а новое значение ставите на место текущего.

Srednas 28.02.2012 14:58

Цитата:

Сообщение от Parsley (Сообщение 1065998)
Надо чтобы все события отслеживались и записывались в какую-нибудь переменную (одной строкой т.е. так: set:red, set:yellow, set:green ) или в массив.

:o

Как вариант:

Код AS3:

var all:Vector.<String> = new Vector.<String>;
...
// реакция на изменения, пришедшие из JS:
var s:string = "текст вашего изменения";
myTextField.text = s;
all.push(s); // добавляем изменение в массив всех изменений
 
// теперь все изменения лежат в векторе (0 — первое, (all.lenght -1) — последнее)


tsarapkabel 28.02.2012 14:59

Код AS3:

myTextField.addEventListener(Event.CHANGE, text_change);
...
private function text_change(event:Event):void {
        textArray.push(myTextField.text);
}


Parsley 28.02.2012 15:18

А как теперь их всех вывести в какое нибудь текстовое поле в flash и записать строчкой в одну переменную?:
Код AS1/AS2:

// теперь все изменения лежат в векторе (0 — первое, (all.lenght -1) — последнее)


Inet_PC 28.02.2012 15:22

Код AS3:

tf.text = all.join(',');


Parsley 28.02.2012 15:34

Добавлено через 15 минут
Код AS3:

var all:Vector.<String> = new Vector.<String>;
//реакция на изменения, пришедшие из JS:
var n:String = test1; // где test1 -- переменная из JS
myTextField.text = n;
all.push(n); // добавляем изменение в массив всех изменений
tf.text = all.join(',');

создаю текстовое поле с названием tf, но выводит только последнее значение test1
Что делать?

MikroAcse 28.02.2012 16:49

Потому что надо подписываться на Event.CHANGE

Parsley 28.02.2012 16:52

А подробнее, не понял... Надо всего ничего их от туда достать, если они там есть. = )

MikroAcse 28.02.2012 16:58

Код AS3:

var all:Vector.<String> = new Vector.<String>;
var n:String = test1;
myTextField.text = n;
myTextField.addEventListener(Event.CHANGE,changed);
 
function changed(e:Event):void {
    all.push(myTextField.text);
    tf.text = all.join(',');
}

По-моему, так :)


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

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