2010-03-25 3 views
0

Existe-t-il un moyen d'empêcher le rendu d'un composant dans Flex (pour économiser de la mémoire ou de la puissance de traitement)?Comment empêcher le rendu de composants dans Flex

J'ai essayé de faire quelque chose comme:

<components:AddNewItemGroup id="addItemGroup" 
      visible="false" 
      enabled="false" 
      horizontalCenter="0" bottom="0" /> 

je remarquai que le composant se rend mais il est tout simplement pas visible ou fonctionnelle.

Répondre

1

Si vous voulez éviter un composant d'être rendu, vous avez besoin de le retirer de la liste d'affichage utilisant la méthode removeChild dans Actionscript.

+0

J'ai essayé ce qui suit: AS: itemsGroupContainer.removeChild (addItemGroup); MXML: Mais ça n'a pas l'air de marcher! Où dois-je mettre le code ActionScript? si je le mets dans l'événement 'creationComplete' du composant, il ne ferait pas ce que je veux car il rendra l'élément et ensuite le supprimera. – Tam

+0

a fini par utiliser addElement à la place et il semble fonctionner contrairement à addChild c'est peut-être parce que j'utilise Flex 4 – Tam

0

Que diriez-vous de définir "includeInLayout = 'false'" aussi? Le doc dit qu'il ne dessinera pas partie ... mais peut-être il sera toujours « rendre » ... il

http://livedocs.adobe.com/flex/3/html/help.html?content=size_position_4.html

+0

La définition de false rendra toujours le composant: ' Si false, l'objet est positionné par son conteneur parent selon ses règles de disposition, mais il est ignoré dans le but de calculer la position de l'enfant suivant. » http://livedocs.adobe.com/flex/3/langref/mx/core/UIComponent.html#includeInLayout –

+0

Je suis d'accord, je me posais des questions sur le combinaison de visible = false et includeInLayout = false. – phtrivier

0

Pour l'effet désiré, utilisez:

< composants: AddNewItemGroup id = "addItemGroup" visible = "false" includeInLayout = "false" enabled = "false" horizontalCenter = "0 "bottom =" 0 "/ >

Questions connexes