Невиданная ситуация: ошибка возникает и пропадает, если добавить
:void после определения метода. Причем влияет это на следующий задекларированный метод в этом же классе.
Ошибка:
1195: Attempted access of inaccessible method lightTwoOk through a reference with static type com.myApplication:myDoc.
Определения:
public function lightOneOk():void {
myMC.LightOne.goGreen();
}
public function lightTwoOk() {
myMC.LightTwo.goGreen();
}
Т.е. если убрать первый void, ошибка пропадёт. Добавить второй — и в список ошибок включатся методы, определённые ниже, после этих двух.
Методы не возвращают значений, функция внутри — обёртка для
gotoAndStop().
Структура классов такова. Приведённый код — из класса документа (
myDoc). Из его конструктора я впервые обращаюсь к Singleton приложения (класс
myApp), создавая его.
myApp содержит свойства
Doc и
User.
User, по получении данных удалённого веб сервиса, вызывает «проблемные» методы:
var App:myApp = myApp.getApp(); // получить ссылку на синглтон приложения
App.Doc.lightOneOk();
App.Doc.lightTwoOk(); // вот на это место указывает ошибка 1195
Это просто UI: подключился — включил зелёный огонёк.
ЧЯДНТ? Гуру ООП, объясните, что «на самом деле» принципиально меняется, когда добаляется
:void к определению метода?