Я столкнулся со специфической проблемой при попытке использовать класс Proxy
и переопределить метод getProperty()
.Я привел мой пример кода класса ниже:
package
{
import flash.utils.Proxy;
import flash.utils.flash_proxy;
public class Thing extends Proxy
{
// holder object
private var _holder:Object;
/**
* Constructor
*/
public function Thing()
{
_holder =
{
stuff: "thing"
};
}
/**
* Override getProperty
*/
override flash_proxy function getProperty(name:*):*
{
trace(name + " being accessed");
return _holder[name];
}
}
}
Я пытался использовать это, чтобы сделать некоторые свойства доступными только для чтения (согласно ответу на мой предыдущий вопрос ), однако есть какое-то странное поведение, которое я не могу сработать.
Используя вышеизложенное, я пытаюсь получить доступ к переменной stuff
следующим образом:
var t:Thing = new Thing();
trace(t.stuff);
Однакоэто приводит к следующей ошибке:
1119: Доступ к возможно неопределенным вещам свойств через ссылку со статическим типом Thing.
Но если я это сделаюэто:
trace(t["stuff"]);
Работает нормально.Что я делаю не так?