Невиданная ситуация: ошибка возникает и пропадает, если добавить
: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
к определению метода?