AIR, Javascript, setTimeout/setInterval

Jean-Luc-Picard

Grünschnabel
Hi Leute,

ich möchte für meine Air-Applikation eine Art SplashScreen verwenden, dafür habe ich im Web immer eine Funktion geschrieben, die so Intervalmäßig meinen SplashScreen ausblendet und den eigentlichen Inhalt einblendet.

Gut, nun habe ich schon die Security-Anpassungen gemacht meinen String für den Funktionsaufruf in einen normalen Funktionsaufruf geändert, aber nun wird es zwar einmal durchlaufen, aber halt nicht mehr im Interval. Will heißen der SplashScreen bleibt erhalten und der Eigentliche Inhalt wird auch nicht angezeigt.

Hat im Web bisher wunderbar funktioniert, das Zeug elegant ein-/auszublenden, nur bei AIR nun garnicht mehr :'(

Gibt es vielleicht alternativen zu den Funktionen, die AIR mitbringt ?

Kann mir wer helfen ?
Hier nochmal ein paar Codes

index.html
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//DE" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" >
    <head>
        <title>Air-ME</title>
		<script type="text/javascript" src="lib/air/AIRAliases.js"></script>
        
		<script type="text/javascript" src="javascript/visibility.js"></script>
		<script type="text/javascript" src="javascript/global.js"></script>

        <link rel="stylesheet" type="text/css" href="styles/default/style.css" />
    </head>
    <body onload="init();">
    	<div id="SplashScreen">
    	</div>
        <div id="Layout" onmousedown="window.nativeWindow.startMove();">
        </div>
    </body>
</html>

global.js
Code:
function init(){
    setTimeout(switchVisibility("SplashScreen"), 3000);
    setTimeout(switchVisibility("Layout"), 4000);
 }

visibility.js
Code:
var interval_active, visibility_interval, visibility_value = 0, visibility_height;

function switchVisibilityExecute(div_id, switch_to){
	switch(switch_to){
		case 'show':
			visibility_value += 10;
			document.getElementById(div_id).style.display = "block";
			document.getElementById(div_id).style.filter='alpha(opacity: '+visibility_value+')';
			if(visibility_value==100){
				document.getElementById(div_id).style.opacity="1.0";
				interval_active = false;
				clearInterval(visibility_interval);
			} else {
				document.getElementById(div_id).style.opacity="0."+visibility_value;
			}
		break;

		case 'hide':
			visibility_value -= 10;
			document.getElementById(div_id).style.filter='alpha(opacity: '+visibility_value+')';
			document.getElementById(div_id).style.opacity="0."+visibility_value;
			if(visibility_value == 0){
				document.getElementById(div_id).style.display = "none";
				interval_active = false;
				clearInterval(visibility_interval);
			}
		break;
	}
}

function switchVisibility(id){
	if(interval_active){
		clearInterval(visibility_interval);
	}

	if(document.getElementById(id).style.display == "none"){
		interval_active = true;
		visibility_value = 0;
		document.getElementById(id).style.filter='alpha(opacity: 00)';
		document.getElementById(id).style.opacity="0.0";
		visibility_interval = setInterval(switchVisibilityExecute(id, 'show'), 50);
	} else {
		interval_active = true;
		visibility_value = 100;
		document.getElementById(id).style.filter='alpha(opacity: 100)';
		document.getElementById(id).style.opacity="1.0";
		visibility_interval = setInterval(switchVisibilityExecute(id, 'hide'), 50);
	}
}
 
Zurück