我有一个flex Air程序,可以使用HTMLLoader加载外部内容。现在出于某种原因,每当我加载具有任何Flash内容的页面时,我的程序外都会弹出一个空白系统窗口。它是完全空白的,全部为白色,带有最小,最大和关闭按钮。如果我关闭它,我加载的任何Flash内容都会停止工作。对于我的生活,我无法弄清楚发生了什么,控制台中没有消息,也没有窗口的标题。
有没有人有任何想法?我感谢您提供的任何帮助。这是我正在使用的代码:
private var webPage:HTMLLoader;
private function registerEvents():void
{
this.addEventListener(gameLoadEvent.GAME_LOAD, gameLoad);
//webPage = new HTMLLoader();
}
//function called back from Game Command to load correct game
private function gameLoad(event:Event):void
{
var gameEvent:gameLoadEvent = event as gameLoadEvent;
loadgame(gameEvent.url, gameEvent.variables);
}
private function loadgame(url:String, variableString:String):void
{
DesktopModelLocator.getInstance().scaleX = 1;
DesktopModelLocator.getInstance().scaleY = 1;
//var url:String = "http://pro-us.sbt-corp.com/aspx/member/LaunchGame.aspx";
var request:URLRequest = new URLRequest(url);
//var variables:URLVariables = new URLVariables("gameNum=17&as=as1&t=demo&package=a&btnQuit=0");
if(variableString != null && variableString != ""){
var variables:URLVariables = new URLVariables(variableString);
variables.exampleSessionId = new Date().getTime();
variables.exampleUserLabel = "guest";
request.data = variables;
}
webPage = HTMLLoader.createRootWindow(true, null, true, null);
webPage.height = systemManager.stage.nativeWindow.height - 66;
webPage.width = systemManager.stage.nativeWindow.width;
webPage.load(request);
webPage.navigateInSystemBrowser = false;
flexBrowser.addChild(webPage);
}
]]>
</mx:Script>
<mx:HTML id="flexBrowser" width="1366" height="658" backgroundAlpha="0.45" creationComplete="registerEvents();" x="0" y="0">
</mx:HTML>
答案 0 :(得分:0)
您没有使用html组件的任何功能。因为它也可能是一个画布,因为你所做的只是addChild到flexBrowser,一个DisplayObjectContainer。虽然我不会这样做,但你可以简单地设置flexBrowser.htmlLoader.load(request);并摆脱所有webPage的东西。
答案 1 :(得分:0)
您的应用程序是否使用透明窗口?在这种情况下,air不会在HTMLLoader中显示Flash内容,请参阅http://bugs.adobe.com/jira/browse/SDK-15033
一种解决方法是使用http://code.google.com/p/adobe-air-util/source/browse/trunk/src/net/tw/util/air/HTMLOverlay.as。
我必须做一些更改才能让它与我们的应用程序一起使用。我发送了一封电子邮件给项目所有者以提供更改,如果您还在上面,我可以向您发送修补程序。最重要的变化是,当切换即alt-tab或打开另一个应用程序时,html覆盖窗口确实落后于其他应用程序。
更新:我已将更改提交到上面的叠加层,请将其检查出来,因为它也适用于您。我知道这似乎是一个糟糕的解决方法,但在adobe修复问题之前似乎没有更好的东西。如果您确实看到了更好的内容,请务必发布更新:)
答案 2 :(得分:0)
此问题已在AIR 1.5.2中修复:
在AIR 1.5.2之前,无法显示嵌入在透明窗口中的SWF内容和HTML容器。使用AIR 1.5.2,可以使用某些wmode设置显示SWF内容。