2008-10-01 8 views
8

Voici mon problème - j'ai un code comme ceci:Comment puis-je visuellement "sortir" d'un conteneur dans Flex?

<mx:Canvas width="300" height="300"> 
    <mx:Button x="800" /> 
</mx:Canvas> 

Le problème est que le bouton à l'intérieur de la toile a une façon de propriété x au-delà de la largeur de la toile - car il est un enfant de la toile, Le Canvas le masque et crée des barres de défilement pour que je puisse passer au bouton. Ce que je voudrais est d'afficher le bouton - 800 pixels à gauche du Canevas sans les barres de défilement tout en laissant le bouton comme un enfant du canevas. Comment je fais ça?

Répondre

8

I figured it out - apparemment le conteneur a une propriété appelée clipContent - voici la description d'Adobe:

Que ce soit pour appliquer un masque clip si les positions et/ou les tailles des enfants de ce conteneur dépassent les limites de ce conteneur. Si la valeur est false, les enfants de ce conteneur restent visibles lorsqu'ils sont déplacés ou dimensionnés en dehors des limites de ce conteneur. Si la valeur est true, les enfants de ce conteneur sont tronqués.

Si clipContent est défini sur false, le défilement est désactivé pour ce conteneur et les barres de défilement n'apparaissent pas. Si clipContent a la valeur true, les barres de défilement apparaissent généralement lorsque les enfants du conteneur s'étendent en dehors de la bordure du conteneur. Pour plus de contrôle sur l'apparence des barres de défilement, voir horizontalScrollPolicy et verticalScrollPolicy. La valeur par défaut est true.

Donc, fondamentalement, - pour afficher le bouton en dehors des limites du conteneur que je dois faire ce qui suit:

<mx:Canvas width="300" height="300" clipContent="false" > 
    <mx:Button x="800" /> 
</mx:Canvas> 

C'était plus facile que je pensais que ça allait être. :)

Here's the official doc...

+0

Génial! J'ai eu quelques cas d'utilisation récents, dans une application Flex sur laquelle je travaille actuellement, que je savais que j'allais devoir comprendre à l'avenir! C'est pour cette raison que stackoverflow devient de plus en plus spécifique aux étiquettes quotidiennes! – defmeta

+0

Je ressens la même chose :) – onekidney

+0

Avoir clipContent par défaut à vrai est IMO l'une des 5 plus grandes erreurs dans Flex. Dans le top 5, il y avait aussi des blocs try/catch qui fonctionnent sous les gestionnaires doLater et doLater2. –

2

Vous devriez être en mesure d'utiliser la propriété includeInLayout aussi, qui vous permettra de l'appliquer à chaque composant de l'enfant indépendamment.

Questions connexes