Просмотр полной версии : Слушать переменную в цикле
SergoMorello
07.02.2013, 16:04
Всем доброго времени суток , ребят подскажите пожалуйста как сделать функцию в цикле чтобы она слушала переменную с переменно меняемым именем , чтобы при изменение значения срабатывало определённое условие.
(Прошу прощения если вопрос нубский , в AS совсем недавно начал работать ещё толком ничего незнаю , заранее спасибо за помощь)
В каком цикле?
Если вам нужна непрерывная проверка, используйте обработчик событий onEnterFrame, например.
this.onEnterFrame = function()
{
if (myVar == 111)
{
trace('bingo');
}
};
Что касается "переменно меняемого имени", в момент "перемены" задавайте заново ссылку myVar на эту переменную.
iflamberg
07.02.2013, 16:15
mooncar, кто ты и куда дел мункара?
Мункар не мог написать "if (myVar = 111)"
SergoMorello
07.02.2013, 16:23
долго обьяснять вообщем вот часть кода , с сервера приходят переменные типа tx1 tx2 tx3 в AS в цикле к этим именам присваиваются те же цифры , всё хорошо но при изменении данных переменных должна стартовать анимация , но не как не могу заставить слушать переменные вида result_lv['tx' + k] ,
k - это переменная счётчика цикла
... _root["turtuse" + k]._x = result_lv['tx' + k];
_root["turtuse" + k]._y = result_lv['ty' + k];
_root["turtuse" + k]._rotation = tu;
//trace(result_lv['ty3']+" - "+_root["turtuse3"]._y);
var BoolWatcher:Function = function (prop, oldVal, newVal)
{
trace(newVal);
if (result_lv['ty' + k] != prop)
{
_root["turtuse3"].play();
trace("hgjhgj");
}
else
{
_root["turtuse" + k].stop();
}
}
watch(result_lv['tx' + k], BoolWatcher);
mooncar, кто ты и куда дел мункара?
Мункар не мог написать "if (myVar = 111)"
да, поторопился, исправил
я на месте :)
SergoMorello
07.02.2013, 18:05
ребят ну подскажите пожалуйста , как заставить watch принимать переменные с квадратными скобками?
watch(peremennaya[k], BoolWatcher);
Добавлено через 16 минут
ну или может кто подскажет может есть ещё какие способы чтобы выполнялось условие после изменения переменной?
Добавлено через 33 минуты
уже 4 день пытаюсь сделать эту ихенею ну никак не получается , уже руки опускаются незнаю как сделать((
alexcon314
07.02.2013, 21:59
Насколько я помню, watch() как бы метод класса Object в AS 2. Т.е. "слушать" можно изменение свойства объекта, а не изменения сферического коня в вакууме. Например:
myObject.watch("speed", speedWatcher, 55);
http://help.adobe.com/en_US/AS2LCR/Flash_10.0/help.html?content=00001435.html
"speed" - это свойство объекта, при изменении которого будет вызван колбек speedWatcher.
Вам нужно прикрепить ваши переменные к объекту или понять, к какому объекту они прикреплены в качестве свойств и слушать их.
Типа такого
_root.watch("turtuse" + k, handler, data);
SergoMorello
07.02.2013, 22:51
я так уже пробовал , не работает(( и пробавал так
result_lv.watch("tx" + k, BoolWatcher);
Добавлено через 18 часов 24 минуты
может я не понимаю как работает эта функция, watch слушает переменную если она была допустим 97 , и потом поменялась на 100 , она запустит функцию ,это так?
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.