AS3 - 全球课程?

时间:2012-01-20 11:05:35

标签: actionscript-3 class global

我知道全局变量应该是坏的但可以创建全局类吗?我正在创建一个应用程序,我希望有一个处理声音的类。从任何课程我都希望能够说soundhandler.playSound();无需在整个地方传递引用。它应该知道它在那里。

任何帮助非常感谢。

1 个答案:

答案 0 :(得分:2)

您指的是static成员。

您的班级SoundHandler会有一个名为playSound()的静态方法,可以这样实现:

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

现在可以通过以下方式访问playSound()方法:

SoundHandler.playSound();

注意:你提到全局方法很糟糕,但是这是一个完美的候选对象和我实际推荐的东西(尽管我讨厌使用静态)。

附加:ActionScript 3的Math类主要包含静态成员,例如Math.round()


  

您的问题(评论):我是否需要在文档类中启动SoundHandler

不,实际上你根本不应该创建一个SoundHandler实例。唯一的要求是您必须在当前类中导入SoundHandler才能访问它:

import yourpackage.SoundHandler;