AS3 - Глобальные классы? - PullRequest
       21

AS3 - Глобальные классы?

0 голосов
/ 20 января 2012

Я знаю, что глобальные переменные должны быть плохими, но возможно ли создавать глобальные классы?Я создаю приложение, и я хочу иметь один класс, который обрабатывает звук.Из любого класса я хотел бы иметь возможность сказать soundhandler.playSound ();без необходимости передавать ссылки повсюду.Надо просто знать, что это там.

Любая помощь с благодарностью.

1 Ответ

2 голосов
/ 20 января 2012

Вы имеете в виду static членов.

Ваш класс SoundHandler будет иметь статический метод с именем playSound(), который можно реализовать следующим образом:

package
{
    public class SoundHandler
    {
        public static function playSound():void
        {
            // @todo Logic
        }
    }
}

Ваш playSound() метод теперь доступен через:

SoundHandler.playSound();

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

Дополнительно: класс ActionScript 3 Math содержит в основном статические элементы, например Math.round()


Ваш вопрос (комментарий):нужно инициировать SoundHandler в классе документа?

Нет, на самом деле вы вообще не должны создавать экземпляр SoundHandler.Единственное требование - для доступа к нему необходимо импортировать SoundHandler в текущий класс:

import yourpackage.SoundHandler;
...