пятница, 30 мая 2008 г.

secret place

Сегодня наткнулся на такую штуку: если позарез нужен доступ к какой-нибудь переменной родительского класса, а она вдруг inaccessible [обяъвлена как mx_internal] то...не надо отчаиваться! Метод есть! И вот какой:
import mx.core.mx_internal;
use namespace mx_internal;

всё собственно. Просто добавляете в начало файла эти строчки и путь открыт.
Мне эти пассы руками понадобились в такой ситуации - отнаследовал я свой класс от DataGridColumn'а и внутри него решил дотянуться до источника данных. Самый простой, на мой взгляд, метод был таким: DataGridColumn.owner.dataProvider. Но компилятор ругался: inaccessible var owner. При этом, в дебаггере, среди член-данных моего класса я видел переменную owner, она была класса DataGrid, вобщем как раз то что надо. Полез в код DataGridColumn - так owner объявлен с неким префиксом mx_internal. Стало очень интересно: как же так, дебаггеру можно, а мне нельзя. И что это за непонятный префикс. Ну и в итоге google выдал рецепт - вот эти самые две волшебные строчки. Я был несколько удивлён. Зато получилось. :)