在某些情况下,外部swf加载swf但显示空白屏幕

时间:2014-11-10 17:31:01

标签: actionscript-3 flash

所以我有一个SWF用于加载另一个外部swf,具体取决于gameID和所选语言。在大多数情况下,它工作正常,条形图出现,当它变满时,新游戏被加载。但是我收到报告说,对于一些人来说,当酒吧完成加载时,屏幕变得空白(总是)。例如:其中一个报告是WinXP,IE8和Flash Player v10,但当我尝试使用这些规格的PC时,它对我来说很好。

由于游戏加载它会触发event.complete而不是IEerror所以它甚至不会显示错误。我试图检查内容为null以显示错误但内容不为空。

stop();

var lang = root.loaderInfo.parameters.lingua;
var phpSession = root.loaderInfo.parameters.sessionPHP;
var gameID = root.loaderInfo.parameters.gameID;

loadbar.visible = false;
titulo.visible=true;

loadingbarerror.visible = false

if (lang != "" && phpSession != "" && gameID != "")
{

    var holder:Loader = new Loader();

    holder.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onGameLoading, false, 0, true);
    holder.contentLoaderInfo.addEventListener(Event.COMPLETE, onGameComplete, false, 0, true);
    holder.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onGameError);
    loadbar.visible = false;

    var request:URLRequest = new URLRequest("jogos/"+gameID+".swflingua="+lang+"&sessionPHP="+phpSession);

    holder.load(request);
}
else
{
    loadingbarerror.visible = true;
    titulo.visible = false;
}




function onGameLoading(e:ProgressEvent):void
{   
    loadbar.visible = true;
    var totalload = e.target.bytesTotal;
    var currentload = e.target.bytesLoaded;
    loadbar.scaleX = currentload/totalload

}

function onGameComplete(e:Event):void 
{  
    if (holder.content != null)
    {
        addChild(holder.content)
    }
    else
    {
        loadingbarerror.visible = true;
        titulo.visible = false;
    }

    holder.contentLoaderInfo.removeEventListener(ProgressEvent.PROGRESS, onGameLoading)
    holder.contentLoaderInfo.removeEventListener(Event.COMPLETE, onGameComplete);
    holder.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, onGameError);
}

function onGameError(e:Event)
{
    loadingbarerror.visible = true;
    titulo.visible = false;

    holder.contentLoaderInfo.removeEventListener(ProgressEvent.PROGRESS, onGameLoading)
    holder.contentLoaderInfo.removeEventListener(Event.COMPLETE, onGameComplete);
    holder.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, onGameError);

}

1 个答案:

答案 0 :(得分:0)

很难调试无法重现的场景。如果可能,最好从受影响的人那里获得一些帮助。这可能很难让别人去做,但如果我要追究这个错误,我会尝试让一个受此错误影响的人安装调试Flash播放器并屏幕显示他们在发生错误时看到的错误。它可能是运行时错误,但拥有标准播放器的用户会看到它无声地失败。