Problème de clipContent en mode fullScreen
Bonjour :)
Je bosse sur un projet en flex et j'ai un problème lorsque je passe en plein écran, il y a un canvas qui prend plus de place que je le lui ai indiqué :(
Le plus simple c'est de vous montrer une partie du code ^^
Code:
1 2 3 4 5 6
| <mx:Canvas id="canvas" bottom="24" top="0" left="3" right="3">
</mx:Canvas>
<mx:Canvas id="footer" height="24" backgroundColor="#C1E98D" bottom="0" left="0" right="0">
<mx:Label id="page_nb" left="5" fontFamily="Verdana" fontSize="10" textAlign="center" verticalCenter="true"/>
<mx:Button label="FS" click="toggleFullScreen()" fillAlphas="[1.0, 1.0]" fillColors="[#C1EF5F, #C1EF5F]" textAlign="center" right="0" bottom="0" top="0" cornerRadius="0"/>
</mx:Canvas> |
Dans le premier canvas je rajoute une VBox dans laquelle je mettrai des images et dans le second canvas, de hauteur fixe, le numéro de la page courante et un bouton pour passer en plein écran.
Je rajoute mon composant AlbumComponent, qui n'est rien d'autre qu'une VBox avec le paramètre "horizontalCenter" à 0. Au préalable, j'ai passé une référence vers mon premier canvas dans d'autres classes:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| //Je nettoie mon canvas
Manager.getInstance().canvas.removeAllChildren();
Manager.getInstance().canvas.clipContent = false;
//Je crée ma vbox
var albumComponent:AlbumComponent = new AlbumComponent();
//Pour chaque page de mon album
for (var i:int=0; i<this.album.getPagesNb(); i++)
{
//Je charge l'image
var img:Image = new Image();
img.load(this.album.getPageByID(i).sourceHQ);
img.doubleClickEnabled = true;
img.name = String(i);
//Je rajoute des événements
var doubleCLickManager:SFDoubleClickManager = null;
doubleCLickManager = new SFDoubleClickManager(img);
doubleCLickManager.addEventListener(MouseEvent.CLICK, imgClicked);
doubleCLickManager.addEventListener(MouseEvent.DOUBLE_CLICK, imgDClicked);
//Je rajoute l'image dans ma vbox
albumComponent.addChild(img);
}
this.box = albumComponent;
//Je rajoute ma vbox au premier canvas
Manager.getInstance().canvas.addChild(albumComponent);
//J'appelle la méthode update() qui retaille mes images suivant le mode (fullscreen, zoom, etc..)
update(); |
Le paramètre clipContent à false me permet de ne pas avoir d'horrible scrollBar à l'écran. Pour naviguer d'une image à l'autre, je ne joue pas avec la scrollBar mais je déplace ma VBox vers le haut avec la méthode move(x, y), du genre canvas.move(0, -300) et on à l'impression d'aller vers le bas.
En mode normal, tout se passe bien: les images se retaillent bien et on peut naviguer d'une page à l'autre avec le clavier, la souris, etc.. ET il y a toujours le canvas "footer" en bas.
Mais lorsqu'on passe en plein écran, le footer disparaît.. Les images de la vbox et le canvas sont bien retaillées pourtant, comme si le footer était toujours là :/
Je suis sûr que le problème vient du clipContent mais je comprend pas .. les 2 canvas n'ont aucun lien, c'est bizarre :O En remettant clipContent à true, la scrollBar revient, tout comme le footer.
Merci de votre aide :p