Magazine High tech

adobe air 1.0.1 windows et la transparence

Publié le 22 mai 2008 par Stef1

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

:)

}


Retour à La Une de Logo Paperblog

A propos de l’auteur


Stef1 Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte

Dossiers Paperblog