Ce qu’on aime bien avec air c’est le principe de l’application avec une forme personnalisée.
Jusque là pour faire ça j’utilisais le principe de mettre une balise Application en lieu et place de WindowedApplication avec une feuille de style pour définir le background=”" et les bons paramètres dans mon fichier app.xml et hop tout allait bien.
Mais dernièrement mon application n’apparaissait plus sur les machines windows, elle était bien présente dans les processus mais c’est tout.
J’avais déjà eu ce genre de problème si un path de fichier n’était pas bon.
Mais pour cette fois c’est tout simplement ( après quelques heures de prise de tête quand même) un problème de balise.
Donc les solutions
Avec WindowedApplication
Dans la balise on peut définir les propriétés
showGripper=”false”
showStatusBar=”false”
showTitleBar=”false”
borderStyle =”none”
ce qui donne
<mx:WindowedApplication xmlns:mx=”http://www.adobe.com/2006/mxml” layout=”absolute” showStatusBar=”false” showTitleBar=”false” showGripper=”false” borderStyle =”none”>
Toujours avec la feuille de style
Application
{
background-color:”";
background-image:”";
padding: 0px;
margin-top: 0;
margin-right: 0;
margin-bottom: 0;
margin-left: 0;
}
et les propriétés dans le app.xml
<!– The type of system chrome to use (either “standard” or “none”). Optional. Default standard. –>
<systemChrome>none</systemChrome>
<!– Whether the window is transparent. Only applicable when systemChrome is false. Optional. Default false. –>
<transparent>true</transparent>
Cette solution si elle fonctionne, n’est quand même pas du plus belle effet car on a le temps de voir la barre de titre avant qu’elle ne disparaisse, même en définissant les propriétés dans une fonction as lancée sur “l’initialize”.
Seconde solution ( on garde le meilleur pour la fin c’est comme ça).
On utilise la balise Application et sur le creationComplete ou applicationComplete on appelle une fonction ici “init()”
private function init():void{
win = this.systemManager.stage.nativeWindow; // Win sera donc notre application
// win.width = 900; // On peut les forcer ou les récuperer
// win.height = 780;
// On centre notre application en définissant le x ( largeur ecran - largeur application ) / 2 idem pour le y
var upperLeft:Point = new Point( (flash.system.Capabilities.screenResolutionX - win.width)/2, (flash.system.Capabilities.screenResolutionY - win.height)/2);
// on défini les limites de notre application
win.bounds = new Rectangle(upperLeft.x, upperLeft.y, win.width, win.height);
// win.alwaysInFront = true; // On peut la scotcher devant si on veut
Application.application.visible = true; // On la rends visible
win.activate(); // On l active
// Et on est content
}