Форум 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=125386)

Gipperion 22.05.2009 22:21

вызов функции класса из тела другого класса
 
Собственно сабж. Есть один пакет, в нем несколько классов. Пытаюсь вызвать public функцию одного класса из функции другого, на что компилятор флеша отвечает что

Код:

ReferenceError: Error #1065: Variable showingBuildingMenu is not defined.
Он даже заявляет что это переменная, а не функция. Так все-таки как корректно это реализовать? Заранее спасибо.

Gaen 22.05.2009 22:39

1. Создаёте экземпляр первого класса
2. Создаёте экземпляр второго класса
3. Передаёте первому объекту ссылку на второй объект
4. Из первого объекта по ссылке вызываете метод второго объекта

Gipperion 22.05.2009 22:49

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

cleptoman 22.05.2009 23:43

пуляйте все наверх через dispatchEvent...а там раздавайте данные кому какие нужны

Gaen 23.05.2009 00:02

Код AS3:

public class DocumentClass{
    public function DocumentClass(){
        this.dummy = new DummyClass(this);
    }
    public function foo(){
        trace('bar');
    }
}
 
...
 
 
public class DummyClass{
    public function DummyClass(doc:DocumentClass){
        doc.foo();
    }
}

Но родителей и правда лучше не дёргать за методы, а посылать им события.

Gipperion 23.05.2009 00:20

Спасибо, действительно выглядит не очень правильно. А через события - это как, если можно в двух словах? Если нет - пойду сам дальше разбираться :)

Alex Lexcuk 23.05.2009 00:29

http://www.flasher.ru/forum/showthread.php?t=125127

Gipperion 23.05.2009 01:32

Вот спасибо, я искал нечто подобное, но не нашел... Топик можно закрыть :)


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

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