C’est l’histoire du workaround ( ça c’est un terme qui fait pro non ?), qui en appelle un autre parce que sinon la vie du développeur elle serait monotone.
La petite histoire, AIR c’est bien ça lit les pdfs, mais pas si l’appli a un fond transparent, dommage …..
Ok, pas de problème pour les pdfs on fait un petit composant, à base de windows, vite fait qui utilise un sytemeChrome standard et le tour est joué, c’est pas ce qu’il y a de plus beau mais au moins l’application reste sur fond transparent et joue les pdfs.
Donc on est content, on double click sur l’élémént de la datagrid et hop, la petite fenêtre s’ouvre et le pdf est dedans, et maintenant si je veux positionner la fenêtre, facile c’est un composant donc monComposant.x = 110 ( par exemple )…. et non !!
Là c’est uniquement le contenu de la fenêtre qui se déplace, p’tin c’est con.
Mais comme toujours, il y a une solution. Il faut définir la position de la nouvelle fenêtre par rapport à l’application entière, ce qui a pour conséquence assez étrange de positionner cette nouvelle fenetre non pas par rapport à la taille de l’application, mais plutôt la taille de l’écran.
var viewer:PdfViewer = new PdfViewer();
viewer.open();
viewer.nativeWindow.x = stage.nativeWindow.x + (stage.nativeWindow.width - 400) / 2;
viewer est donc mon composant window et pour le positionner au milieu de mon application dans l’exemple ci dessus, je dois définir sa position avec viewer.nativeWindow.x et non pas viewer.x comme la logique aurait pu le laisser penser.