Форум 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)
-   -   область видимости переменных в функции (http://www.flasher.ru/forum/showthread.php?t=73127)

Марк 13.12.2005 18:41

область видимости переменных в функции
 
Привожу пример :

Цитата:

ceff = "normal";
function Effects(effects,ceff) {
if (effects["burn"]["time"]>0) {
ceff = "burn";
trace(ceff);
this.en.fx.gotoAndStop(ceff);
effects["burn"]["time"]--;
} else {
this.en.fx.gotoAndStop(1);
}
_root.q4 = ceff;
}
Почему массив effects изменяется, а переменная ceff - нет ??
При trace выводится значение burn, а переменной q4 присваивается значение "normal", которое я определил еще до начала функции - почему ???

Получается в 1й части функции у переменной 1 значение, а в другой - другое, при том что ее нието не изменял ...

s_u_m_p 13.12.2005 20:03

это не вопрос по видимости.

в функцию:

* объекты передаются всегда по ссылке.
* примитивы по значению

насчет объектов:
Код:

var a:Object = new Object ();
var b:Object = a;

не означает что переменная а, и есть объект. в данном случае а и б cсылаются на один и тот же объект, и если ты удалишь обе ссылки

Код:

delete a;
delete b;

ты удалишь не сам объект а только с ссылки на него, (объект удаляет только Garbage Collector если на него никто не ссылается)

Antares 13.12.2005 21:06

Nox Noctis об областях видимости @ Novemberain.com. По-моему, не понять невозможно

Марк 13.12.2005 22:06

еще такой вопрос :

У меня есть мувиклип par, а в нем находится еще 1 мувиклип - ins. Я копирую мувиклип par. Если в одной из копий объекта ins я обращусь к объекту par по относительному пути : this._parent.s = 1, значение переменной s присвоится во всех копиях объекта par или только в той, из которой было обращение ?


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

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