我有一个用HTML / JavaScript构建的Adobe AIR应用程序。
XML如下:
<?xml version="1.0" encoding="UTF-8"?>
<application xmlns="http://ns.adobe.com/air/application/4.0">
<id>examples.html.HelloWorld</id>
<versionNumber>0.1</versionNumber>
<filename>HelloWorld</filename>
<initialWindow>
<title>Hello World</title>
<content>HelloWorld.html</content>
<visible>false</visible>
<minimizable>true</minimizable>
<maximizable>false</maximizable>
<resizable>false</resizable>
<width>800</width>
<height>600</height>
<systemChrome>none</systemChrome>
<transparent>true</transparent>
</initialWindow>
</application>
我想要的是首先显示启动画面,然后在所有文件加载后显示主应用程序窗口等。
一个想法是让XML文件中的intialWindow成为实际的Web应用程序,但是默认使用visible false隐藏它然后添加:
$(document).ready(function(){
// Create a new window that will become the splash screen
var options = new air.NativeWindowInitOptions();
options.systemChrome = air.NativeWindowSystemChrome.STANDARD;
options.transparent = false;
var newWindow = new air.NativeWindow(options);
// Add content to new window
var htmlView:HTMLLoader = new HTMLLoader();
htmlView.width = 300;
htmlView.height = 500;
newWindow.stage.align = "TL";
newWindow.stage.scaleMode = "noScale";
newWindow.stage.addChild( htmlView );
htmlView.load( new URLRequest('splash.html') );
// Check for loading of app
$(window).load(function(){
// Hide splash
window.nativeWindow.close();
// Activate the initial Window
window.nativeWindow.activate();
});
});
我对这种方法的问题是:
我开始时:
$(window).load(function () {
loaded = true;
});
function appLoaded()
{
if(loaded)
{
// Hide splash
window.nativeWindow.close();
// Activate the initial Window
window.nativeWindow.activate();
}
else
{
appLoaded(); // keep checking until the loaded becomes true
}
}
上述代码的一个问题是appLoaded函数可以运行数百次。有什么建议来解决这个问题因为我想确保一旦应用程序加载并且出现了闪现,它就会隐藏起来。
答案 0 :(得分:1)
我做了类似的事情,但采用了另一种方法:
<强>更新强>:
如何为启动画面提供内容(我添加了一些代码来创建一个窗口并加载到splash.html页面,但它目前因为我认为代码是ActionScript而不是JavaScript而中断)? / p>
第一:没有ActionScript。这是JavaScript,但你必须以正确的方式使用它。你错过了空气。它代表Air的库对象。
// Create a new window that will become the splash screen
var options = new air.NativeWindowInitOptions();
options.systemChrome = air.NativeWindowSystemChrome.STANDARD;
options.transparent = false;
// Add content to new window
var htmlLoader = air.HTMLLoader.createRootWindow(false, options, false);
htmlLoader.window.nativeWindow.width = 300;
htmlLoader.window.nativeWindow.height = 500;
htmlLoader.window.nativeWindow.visible = true;
htmlLoader.load(new air.URLRequest('splash.html'));
关闭新的启动画面(如何选择要关闭的窗口)?
// That is your splash screen
htmlLoader.window.nativeWindow.close();
加载时显示正确的初始屏幕(如何选择正确的窗口)?
// This is your main window
window.nativeWindow.visible = true;