Actionscript 3 在某些情况下,外部swf会加载swf,但会显示一个空白屏幕
因此,我有一个SWF,用于根据gameID和所选语言加载另一个外部SWF。在大多数情况下,它工作正常,酒吧出现,当它成为充分的新游戏加载。但是我收到报告说,对于一些人来说,当酒吧加载完毕,屏幕就会变成空白(总是)。例如:其中一个报告是WinXP、IE8和FlashPlayerV10,但当我尝试使用这些规格的PC时,它对我来说运行良好 因为游戏加载了event.complete而不是IEerror,所以它甚至不显示错误。我试图检查内容是否为空以显示错误,但内容不为空Actionscript 3 在某些情况下,外部swf会加载swf,但会显示一个空白屏幕,actionscript-3,flash,Actionscript 3,Flash,因此,我有一个SWF,用于根据gameID和所选语言加载另一个外部SWF。在大多数情况下,它工作正常,酒吧出现,当它成为充分的新游戏加载。但是我收到报告说,对于一些人来说,当酒吧加载完毕,屏幕就会变成空白(总是)。例如:其中一个报告是WinXP、IE8和FlashPlayerV10,但当我尝试使用这些规格的PC时,它对我来说运行良好 因为游戏加载了event.complete而不是IEerror,所以它甚至不显示错误。我试图检查内容是否为空以显示错误,但内容不为空 stop(); var la
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);
}
调试一个无法重现的场景是很困难的。如果可能的话,最好从那些受影响的人那里得到一些帮助。这可能很难让人去做,但是如果我继续这个错误,我会尝试让受这个错误影响的人安装一个调试flash播放器,并在错误发生时截屏显示他们看到的错误。这可能是一个运行时错误,但拥有标准播放器的用户将看到它以静默方式失败。谢谢您的回答。我使用UncaughtErrorEvent.UNCAUGHT_ERROR来显示错误,但没有显示任何错误。如果最终用户没有安装调试播放器,则不会显示任何错误,并且您已经说过您不能自己复制错误,因此我不希望UncaughtErrorEvent显示任何内容。你需要让看到问题的人安装调试flash player,并告诉你当你的swf只加载一个白色屏幕时,错误窗口会弹出什么。我意识到有问题的计算机无法安装调试flash player,因为它们没有管理员权限。也许这与URLRequest没有从服务器获取文件的权限有关?