870920 Menu

JUCE类库SplashScreen详解

SplashScreen即通常所说的应用程序启动画面,或者闪屏。该功能的实现非常简单:JUCEApplication程序主体类的initialise()初始化函数中,首先创建SplashScreen对象,显示之。而后再实例化窗口框架类:

SplashScreen对象调用的show()后,闪屏画面自动显示在屏幕中心,并且不阻塞后续代码,以确保show()语句之后的代码得以继续执行。

本类继承自Component、Timer和DeletedAtShutdown这三个类,最显著特点:

  • Component类使之可以成为桌面组件,并将图像绘制为自己的背景。
  • Timer使之到期即自我消失,并且使其运行在后台开辟的线程上,不阻塞show()之后的代码。
  • DeletedAtShutdown类比较有意思,自销毁基类。程序退出时,该类的对象将自动销毁,无需显式销毁之,也无需使用ScopedPointer作用域指针。任何自定义类均可继承该类,无需实现或重写该类的任何函数,直接private继承即可。继承后,自定义类即拥有程序退出时自我销毁的功能。这个功能非常适合不打算或不方便控制生命结束期的单例类。关于单例类,可点此参阅

小技巧

SplashScreen简单方便,但不能显示文本信息。因此,要在闪屏画面中显示不断变化的文本,需派生其子类。可参见笔者(Running)制作的JuceRunning类库(JUCE类库第三方模块)中的SplashWithMessage类。