Вход

Просмотр полной версии : не работает ссылка на самого себя (FD)


kaetano
16.12.2011, 03:02
Добрый вечер.
У меня такая проблема. перехожу на ФД и выдает ошибку, ссылаясь на строчку
public static var main:Main; //Ссылка на самого себя
ошибка:
: 18 Error: Access of possibly undefined property isPaused through
a reference with static type Main.

Такая ссылка нужна, чтобы дочерние объекты могли контролировать ситуацию - не нажата ли пауза и скорость просмотра....

в доч.классах обращаюсь так:
private function onTimerAppear(event:TimerEvent):void{
if(!Main.main.isPaused){
tTimer.delay = 20/Main.main.koefSpeed;
//.......

}
}

причем во флеше все работало...
заранее спасибо!!!

wvxvw
16.12.2011, 03:11
Подозреваю, что он Main найти не может, или создал второй файл с таким же названием. Ну и, на всякий случай: а у Main точно есть свойство с таким именем?

crazyone
16.12.2011, 03:12
Русски Простым же языком в ошибке написано: у класса Main нет переменной "isPaused". Ссылка на самого себя тут не при чем.

strangedk
16.12.2011, 19:32
А зачем такой изврат?

Если Main это базовый класс, то наследуйте isPaused и используйте уже прямо в дочерних.

- или значение переменной должно быть одинаково для всех дочерних объектов?

kaetano
17.12.2011, 00:26
А зачем такой изврат?

Если Main это базовый класс, то наследуйте isPaused и используйте уже прямо в дочерних.

- или значение переменной должно быть одинаково для всех дочерних объектов?

та не, это не базовый, а основной класс, в нем хранятся переменные. тот же флаг наличия паузы. и, конечно, он должен быть один.

Добавлено через 2 минуты
Русски Простым же языком в ошибке написано: у класса Main нет переменной "isPaused". Ссылка на самого себя тут не при чем.

не привела определение:
public static var main:Main; //Ссылка на самого себя
private var _isPaused:Boolean; //Флаг - пауза

попробовала сделать ее public и static - все тоже самое.

и почему в IDE работало?

прям даже интересно))

Добавлено через 9 минут
Подозреваю, что он Main найти не может, или создал второй файл с таким же названием. Ну и, на всякий случай: а у Main точно есть свойство с таким именем?

Вот это похоже на правду - не может найти Main..... странно, вроде ж основной класс, через него запускаем все приложение и все работает кроме этого момента.
Может потому что они в разных папках лежат?

Все никак не могу разобраться в ФД с папками - куда и что класть и как потом это прописывать.:umnik2:
Пробовала найти в инете информацию - не получилось

wvxvw
17.12.2011, 00:43
А можно посмотреть на код Main, и так чтобы в нем было isPaused public свойство?

kaetano
17.12.2011, 00:52
аааа, все снимаю вопрос!
ворона - пропустила подчеркивание. так глупо(((

извините

fish_r
17.12.2011, 00:58
в ошибке говорится о "isPaused" а в вашем коде имя пер. "_isPaused" . В этом причина? Или к ней через геттер обращаются?

А в ИДЕ стрикт режим по умолчанию выключен. Так что она многое стерпит )

Добавлено через 48 секунд
Не успел )

kaetano
17.12.2011, 01:01
тааак. на этапе компиляции все проходит, а дальше, на этапе показа выдает ошибку

[Fault] exception, information=TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".


и опять вот эта строка
if(!Main.main._isPaused){

HardCoder
17.12.2011, 02:11
А вы точно присвоили свойству main значение, или только обьявили его?public static var main:Main;
private var _isPaused:Boolean;

public function Main(){
main = this;
}

kaetano
17.12.2011, 02:34
А вы точно присвоили свойству main значение, или только обьявили его?public static var main:Main;
private var _isPaused:Boolean;

public function Main(){
main = this;
}

как же я Вам благодарна:)
:yahoo: