PDA

Просмотр полной версии : [as2] значение this внутри with


: hr :
07.10.2005, 15:25
Друзья, разбираюсь с AS 2.0, подскажите пожалуйста значение this внутри инструкции with внешнего класса. Другими словами проблема в следующем:

class Test {
private var prop:Number = 1;
public function method():Void {
prop = 2;
with (_root) {
trace(this.prop);
}
}
}

ну и соответственно
var obj:Test = new Test();
obj.method();

Выдает ошибку The member is private and cannot be accessed. Почему? Ведь собственное свойство объекта prop объявлено? Причем ошибка возникает только внутри with!

silin
07.10.2005, 19:22
для сравнения:
var obj:Test = new Test();
trace(obj.prop)
дает такую же ошибку (свойство-то приватное)
т.е. выходит, что в случае with (_root) {trace(this.prop);} this указует на объект(класс), а вызов просходит из области видимости рута
зы: вот и думаешь много ли от него (with) пользы, чтоб связываться..

: hr :
07.10.2005, 19:25
понятно, спасибо silin, я так и предполагал...