Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Ошибка 1119: Access of possibly undefined property. (http://www.flasher.ru/forum/showthread.php?t=209054)

svdsLis 06.10.2014 22:01

Ошибка 1119: Access of possibly undefined property.
 
Всем здравствуйте. Столкнулся вот с такой проблемой.
Есть код:
Код AS3:

(this.root as Main).core.gamesManager.game.addEventListener(Game.DATE_CHANGE, onDateChange);

Который работает.
Но стоит мне подключить это:
Код AS3:

import core.StringsManager;

Выдаёт ошибку:
1119: Access of possibly undefined property gamesManager through a reference with static type Main.

Класс StringsManager:
Код AS3:

package core 
{
        // Менеджер строк
        public class StringsManager
        {
                /* Константы */
                public static const TEXT_FORMAT:String = "text";
                public static const URL_FORMAT:String = "url";
 
                private static var stringsList:XML;
 
                // Загрузить информацию
                public static function load(strings:XML):void
                {
                        stringsList = strings;
                }
 
                // Поиск строки по списку тегов //! Оптимизировать
                public static function getStringByTags(format:String, tags:Array):String
                {
                        return "ERROR!";
                }
        }
}

А вот если написать так:
Код AS3:

((this.root as Main).core as Core).gamesManager.game.addEventListener(Game.DATE_CHANGE, onDateChange);

То всё работает.

caseyryan 06.10.2014 23:27

Тут название пакета core совпадает с названием переменной.
Программа пытается найти в пакете core свойство gameManager, которого там нет. Отсюда и проблема.
Надо либо пакет переименовать, либо переменную

п.с. Этот код вообще ужасен. По-хорошему, так делать вообще нельзя

GBee 06.10.2014 23:29

Цитата:

Этот код вообще ужасен. По-хорошему, так делать вообще нельзя
:о) но все делают

caseyryan 06.10.2014 23:31

Цитата:

Сообщение от GBee (Сообщение 1173074)
:о) но все делают

Я не делаю) Уже не все ;)

svdsLis 06.10.2014 23:39

Цитата:

Сообщение от caseyryan (Сообщение 1173072)
Тут название пакета core совпадает с названием переменной.
Программа пытается найти в пакете core свойство gameManager, которого там нет. Отсюда и проблема.
Надо либо пакет переименовать, либо переменную

п.с. Этот код вообще ужасен. По-хорошему, так делать вообще нельзя

Благодарю, помогло.

GBee 06.10.2014 23:49

Цитата:

Я не делаю) Уже не все
Кстати, а какой выход? Пихать каждый уровень в переменную, или геттеров-оберток наделать?

MikroAcse 07.10.2014 09:37

А зачем вообще нужен доступ к мейну? Все, что там должно быть - инициализация старлинга или создание вьюшки и контроллера.

GBee 07.10.2014 11:13

Цитата:

А зачем вообще нужен доступ к мейну? Все, что там должно быть - инициализация старлинга или создание вьюшки и контроллера.
Возможно это разрушит ваше мировоззрение, но не все используют МВЦ и уж точно Старлинг.


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

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