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

Elidan 01.01.2011 22:25

Вызов метода другого класса через статическую переменную
 
Хотел узнать мнение про вызов метода другого класса через статическую переменную . Стоит ли так делать или есть более правильные способы?

alatar 02.01.2011 11:32

Какой в этом смысл?
Цитата:

или есть более правильные способы?
Способы чего? Вызовов методов классов?

Elidan 02.01.2011 14:43

Специально для тех кто не понял вопроса:
Допустим есть класс main и класс hero, в main создаю экземпляр hero. Нужно вызвать метод main из hero. Я в main создаю статическую переменную и через неё вызываю методы main. Стоит ли так делать или есть более правильные способы?

Bgg 02.01.2011 14:59

Статическими методами вообще не стоит злоупотреблять. Что бы вызвать метод из Main можно послать событие из Hero.

Код AS3:

public class Main()
{
    public static var EVENT_MAIN_METHOD:String = "eventMainMethod";
 
    public function Main() extends Sprite
    {
          addEventListener(EVENT_MAIN_METHOD, method);
          addChild(new Hero());
    }
    private function method(event:Event):void
    {
          trace("method called");
    }
}
...
public class Hero() extends Sprite
{
    public function Hero()
    {
          addEventListener(ADDED_TO_STAGE, addedToStage);
    }
    private function addedToStage():void
    {
          removeEventListener(ADDED_TO_STAGE, addedToStage);
 
          dispatchEvent(new Event(EVENT_MAIN_METHOD), true));
    }
}


alatar 02.01.2011 15:32

Цитата:

Стоит ли так делать или есть более правильные способы?
Не стоит. Правильно будет как написал Bgg. Можно еще передать в Hero ссылку на main. Это лучше чем статик, но хуже события.


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

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