使用Starling和Air for iOS查看iAd后恢复Stage3D上下文

时间:2012-10-31 23:03:46

标签: air air-native-extension starling-framework iad

我有一个使用Starling的应用程序和iAds的原生扩展(Milkman Games iAds Extension)

我注意到,当用户点击iad,与之交互,然后返回到游戏时,由于Starling恢复Stage3D上下文,因此黑屏会有很长时间的延迟。

我希望能够在此期间显示某种加载屏幕,但我尝试的一切似乎都不起作用。 有没有人有建议如何实现这个?它甚至可能吗?

1 个答案:

答案 0 :(得分:0)

这只是一个理论,没有经过测试但它应该有效。

倾听Event.ACTIVATE。这应该在iAd关闭时触发。它还触发了很多其他时间,所以我们需要确保检查这个黑屏,为此我们可以简单地将它放在事件处理程序中:

private function _onActivateHandler(e:Event):void
{
    if (starling.context.driverInfo.indexOf("Disposed") != -1)
    {
        this.addChild(loadingTextOrBitmapEtcEtc);

        starling.stage3D.addEventListener(Event.CONTEXT3D_CREATE, this._onContext3DCreateHandler);
    }
}

private function _onContext3DCreateHandler(e:Event):void
{
    starling.stage3D.removeEventListener(Event.CONTEXT3D_CREATE, this._onContext3DCreateHandler);

    this.removeChild(loadingTextOrBitmapEtcEtc);
}