Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Не могу запустить метод через референс основного класса документа (http://www.flasher.ru/forum/showthread.php?t=163618)

ethereal999 09.08.2011 22:24

Не могу запустить метод через референс основного класса документа
 
создал референс на основной класс документа по такой схеме

Код AS3:

private static var _instance:Main;
        public static function get instance():Main {
            return _instance;
        }
 
        public function Main():void {
            _instance = this;
            ....

получать объекты и переменные находясь в других классах получается,
например, Main.instance.tocMenu.visible = false;
а вот на запуск функции (Main.instance.nextPageLoad()) флэш (CS5.5)
выдает ошибку:

Код:

1195: Attempted access of inaccessible method nextPageLoad through a reference
with static type Main.

При этом nextPageLoad public. Когда трэйсю trace (Main.instance.nextPageLoad); пишет, что функция,
то есть видит ее.

как мне запустить метод основного класса документа из других классов?

======================
кажется, заработало:
Код AS3:

Main.instance.nextPageLoad.call (null, undefined);

может, есть еще какой-нибудь метод, и почему заработало в таком виде?

in4core 10.08.2011 03:39

Вообще то метод в этом случае должен быть : публичный! Это раз, если вы используете статику то и метод статичный это два

Zebestov 10.08.2011 09:26

Цитата:

Сообщение от in4core (Сообщение 1019960)
если вы используете статику то и метод статичный

Почему? Мы же получаем экземпляр класса.

ethereal999 10.08.2011 13:29

Цитата:

Сообщение от in4core (Сообщение 1019960)
Вообще то метод в этом случае должен быть : публичный! Это раз, если вы используете статику то и метод статичный это два

в смысле сделать nextPageLoad статичным? пробовал, вываливается куча ошибок на отсутствие объектов.

Так почему не работает один метод и работает другой?
Я слышал мнение, что это из-за наличия TLF текста, коим я как раз пользуюсь. Заменить все на классик сейчас нет времени, но как-нибудь проверю эту гипотезу.

Bgg 10.08.2011 13:40

Архитектуру смените. Делать статичный Main это колхоз.

etc 10.08.2011 13:42

ethereal999, покажите весь Main.

ethereal999 10.08.2011 14:25

Вложений: 1
Цитата:

Сообщение от Bgg (Сообщение 1020050)
Архитектуру смените. Делать статичный Main это колхоз.

поясните, пожалуйста, не понимаю

прошу прощения за возможный тупак, программинг не моя основная профессия

Котяра 10.08.2011 16:42

С документ классом бывает, что происходят разные непонятки. Код по идее правильный. Просто компилятор флэш (CS5.5) мог ещё что-нибудь дописать.
Код посмотреть не могу - флэша не стоит.
А по поводу архитектуры - почитайте про событийную модель.


Часовой пояс GMT +4, время: 09:17.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.