Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   не работает ссылка на самого себя (FD) (http://www.flasher.ru/forum/showthread.php?t=172739)

kaetano 16.12.2011 03:02

не работает ссылка на самого себя (FD)
 
Добрый вечер.
У меня такая проблема. перехожу на ФД и выдает ошибку, ссылаясь на строчку
Код AS3:

public static var main:Main;                //Ссылка на самого себя

ошибка:
Код:

: 18 Error: Access of possibly undefined property isPaused through
a reference with static type Main.

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

в доч.классах обращаюсь так:
Код AS3:

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

Цитата:

Сообщение от strangedk (Сообщение 1051985)
А зачем такой изврат?

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

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

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

Добавлено через 2 минуты
Цитата:

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

не привела определение:
Код AS3:

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

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

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

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

Добавлено через 9 минут
Цитата:

Сообщение от wvxvw (Сообщение 1051817)
Подозреваю, что он 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".
и опять вот эта строка
Код AS3:

        if(!Main.main._isPaused){


HardCoder 17.12.2011 02:11

А вы точно присвоили свойству main значение, или только обьявили его?
Код AS3:

public static var main:Main;
private var _isPaused:Boolean;
 
public function Main(){
  main = this;
}



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

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