PDA

Просмотр полной версии : Вопрос о видимости переменных


eXplozive
11.01.2008, 13:18
Всем доброго дня. Вот возник следущий вопрос - например пишу в классе:



private function loadImage(){
trace(loadCounter);
_root.onEnterFrame = function(){
trace(loadCounter);
}
}




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

chingachgoog
11.01.2008, 13:48
а где loadCounter объявлена? в руте?

eXplozive
11.01.2008, 13:57
нет... в классе

что-то типа этого:



class wi.InterfaceBuilder extends MovieClip {

private var loadCounter:Number;

public function InterfaceBuilder(data){

loadCounter=0;
loadImage();

}

private function loadImage(){
trace(loadCounter);
_root.onEnterFrame = function(){
trace(loadCounter);
}
}

}

etc
11.01.2008, 14:06
Методы в методах не пишут.

olexandr
11.01.2008, 14:09
могу ошибиться, конечно, но, по-моему, чтобы переменная была видна таким способом, она должна быть static, а не private и public...

chingachgoog
11.01.2008, 14:21
А как же рут увидит var, да еще и private?

private var loadCounter:Number;

CrazyFlasher
11.01.2008, 15:25
import mx.utils.Delegate;

class wi.InterfaceBuilder extends MovieClip {

private var loadCounter:Number;

public function InterfaceBuilder(data){

loadCounter=0;
loadImage();

}

private function loadImage(){
trace(loadCounter);
_root.onEnterFrame = Delegate.create(this, traceMe);

}
private function traceMe(){
trace(loadCounter);
}

}


а так?