Просмотр полной версии : Запись в массив изменений в TextField
Как реализовать? Переменная одна передается из JS в виде строки (работает),
содержание строки меняется, отправляет в TextField (обычное текстовое поле в Flash). Надо отслеживать эти изменения и записывать в массив (история) или строчкой, то что менялось в TextField-e.
Например.
В текстовом поле появляются,
строки:
сначало
1. set:red
потом
2. set:yellow
далее
3. set:green
и т.д.
Надо чтобы все события отслеживались и записывались в какую-нибудь переменную (одной строкой т.е. так: set:red, set:yellow, set:green ) или в массив.
:o
Ну а в чем проблема от? В момент
Переменная одна передается из JS в виде строки (работает), передачи строки, смотрите, если уже, что-то есть, то добавляете в конец массива текущее значение, а новое значение ставите на место текущего.
Надо чтобы все события отслеживались и записывались в какую-нибудь переменную (одной строкой т.е. так: set:red, set:yellow, set:green ) или в массив.
:o
Как вариант:
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
myTextField.addEventListener(Event.CHANGE, text_change);
...
private function text_change(event:Event):void {
textArray.push(myTextField.text);
}
А как теперь их всех вывести в какое нибудь текстовое поле в flash и записать строчкой в одну переменную?:
// теперь все изменения лежат в векторе (0 — первое, (all.lenght -1) — последнее)
Добавлено через 15 минут
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
А подробнее, не понял... Надо всего ничего их от туда достать, если они там есть. = )
MikroAcse
28.02.2012, 16:58
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(',');
}
По-моему, так :)
где-то что-то не так (ничего не выводит)...
в test1 сначало вписывается set:red потом set:yellow потом set:green и т.д.,
надо это поймать и выдать допустим переменной... все вместе: set:red, set:yellow, set:green... (в зависимости от последовательности нажатия)
MikroAcse
29.02.2012, 11:22
Так тебе надо на изменение test1?
Я подумаю...
Да, переменная одна, а данные она разные передает.
MikroAcse
29.02.2012, 16:08
test1 ты откуда берешь?
Это String?
Да. String.
function getTextFromJavaScript(str:String):void {
receive.text = "" + str;
var test1:String=receive.text;
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.