Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   listener на переменую (http://www.flasher.ru/forum/showthread.php?t=98965)

4teras 25.07.2007 16:01

listener на переменую
 
помогите плз написать listener который бы выполнял некоторую функцию когда изменяется переменная _global.tmp
я нашел такую функцию .onChanged = function(){...} но у меня не получается. помогите плз

CrazyFlasher 25.07.2007 16:10

ну по-корявому можно так =))
Код:

_global.tmp = 123;
tempVar = _global.tmp;

this.onEnterFrame = function(){
        if(_global.tmp != tempVar){
                trace("variable has new value!");
        }
}

хотя не...чё-то отморозил =) сотрите этот пост и не читайте его! =))

etc 25.07.2007 16:11

watch, addProperty…

4teras 25.07.2007 16:17

так это же не лиснер.
__etc: можешь плз подробнее написать

Wolsh 25.07.2007 16:23

это метод текстфилда. А тебе наверно придется делать интервал и проверять каждую миллисекунду :) равно ли значение переменной предыдущему. Опыт (мой, конечно) показывает, что проще заделать какое-нибудь действие там, где она изменяется. Чтоб процессор не дымился :)

4teras 25.07.2007 16:24

насколько я понял watch, addProperty можно применять только к Object.
а как тогда свойством сделать переменную _global.tmp ?

Wolsh 25.07.2007 16:25

О, да, __etc, расскажи про watch

4teras 25.07.2007 16:27

Wolsh: ну такой метод постоянной проверки не очень симпатичен. а дело в том что у меня переменная может изменятся с нескольких подгружаемых мувиков, и для каждого писать действие которое надо делать просто выше моих сил

screamge 25.07.2007 16:39

Код:

_global = new Object ();
_global.speed = 0

var speedWatcher:Function = function(prop, oldVal, newVal) {
        trace (newVal);
    return newVal;
}

_global.watch("speed", speedWatcher);

_global.speed = 54;
_global.speed = 57;

Вот так работает, решение на самом деле простое, не использовать глобал, ведь рут переменные тоже доступны отовсюду.
С подгружающимися мувиками работать не будет, досягаемость только в области текущего таймлайна.

4teras 25.07.2007 16:42

но ведь когда создаешь много подгружаемых мувиков не всегда удобно использовать рут


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

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