Форум 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)
-   -   watch и глобальные переменные (http://www.flasher.ru/forum/showthread.php?t=76405)

Alloy 05.03.2006 02:32

watch и глобальные переменные
 
Нужно отследить изменение переменной.
Нашел такой код
Код:


myVar=1;
nv = function()
{
trace("myVar changed");
};
this.watch( "myVar", nv );
myVar=2;

но он не работает с глобальными переменными. Как это исправить?

Antares 05.03.2006 04:25

Возможны 2 варианта:

1. Попробовать раскрыть полностью с помощью ASSetPropFlags (очень вряд ли)
2. Проверить область видимости функции.

Однако я бы посоветовал просто создать в _global объект некого нового класса с геттером и сеттером для свойства.

sergwizard 05.03.2006 05:42

Ну, во-первых, для того чтобы сработал watch нужно изменить myVar.
Ты же просто продекларировал myVar = 1; myVar = 2. А самого события изменения не произошло. Попробуй хотя бы так:
Код:

myVar=1;
nv = function(){
trace("myVar changed");
}
this.watch( "myVar", nv );
this.onMouseUp = function(){
        myVar=2;
}


silin 05.03.2006 11:27

2sergwizard: myVar = 2 и есть изменение: какая разница по мышке присвоил или в кадре..
2Alloy: вот так можно
Код:

_global.myVar = 1;
nv=function() {
        trace("myVar changed");
       
};
_root.watch.call(_global,"myVar", nv);
_global.myVar = 2;


sergwizard 05.03.2006 18:35

Блин, Silin, ты – как всегда – прав! :) А я под утро, да еще спьяну, даже и не врубился в суть вопроса, что тут про _global требуют…
Каюсь. Ты только никому не говори. А я исправлюсь. Больше не буду умничать нетрезвым. :)

Alloy 05.03.2006 23:48

Супер!
Спасибо огромное! :)


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

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