2009-10-14 7 views

Répondre

2

Ashier suggère d'utiliser la balise de métadonnées « Exclure », mais Maskit offre à ses limites et propose des solutions alternatives:

http://blog.ashier.com/2008/03/25/hiding-properties-in-flex-components/
http://smaskit.blogspot.com/2008/07/making-mxml-subcomponent-private.html

+0

La solution suggérée dans le 2ème lien est assez bonne (+1 pour ça). Mais toujours aucun de ces composants enfants statique :( –

+0

a accepté cette réponse, car il est la seule chose qui peut être fait jusqu'à présent.Espoir Flex 5 soutiendra mxml static/private :( –

0

Au sens strict de ces termes, ne vous ne pouvez pas faire cela en utilisant mxml. Le deuxième lien posté par Luis contient quelques solutions de contournement pour le comportement privé/protégé.

0

J'ai trouvé une solution à la question statique. Je voulais un bloc-notes rapide qui pourrait être accessible n'importe où dans l'application mobile, sans qu'une modification de l'instance ne reste ouverte sur un autre écran.

J'ai créé un contrôle mxml de bloc-notes, puis l'ai placé dans une section de déclarations dans l'application de niveau supérieur mxml. Dans chaque vue que je voulais que le mémo apparaisse, j'ai ajouté:

import mx.core.FlexGlobals; 
import components.QuickMemo; 

private var memo:QuickMemo; 

Dans la création de la vue complète:

memo = FlexGlobals.topLevelApplication.memo; 

Dans le code viewActivation, j'ai ajouté:

memo.visible = false; 
addElement(memo); 

Dans la vue Code de désactivation, j'ai inclus:

removeElement(memo); 

L'effet net est qu'une seule instance du mémo existe à tout moment et qu'une instance s'ouvre dans l'état où elle se trouvait dans la dernière vue dans laquelle elle est apparue.