Flex 3 htmlText calcule mal la façon dont la hauteur et les bandes enjambent étiquettes

StackOverflow https://stackoverflow.com/questions/4663227

  •  10-10-2019
  •  | 
  •  

Question

J'ai actuellement deux problèmes avec Flex 3 htmlText.

1) Quand je suis en train htmlText mon texte:

myText.htmlText =

Il calcule la mauvaise façon de la hauteur. Dans la plupart des cas, une tonne de rembourrage (ou espace) est ajouté au-dessus et en dessous du texte. Je ne sais pas ce qui se passe, mais il calcule la manière textHeight plus élevé que normalement.

2) Si je mets dans mon html, il les bandes automatiquement (au lieu de simplement les ignorer). J'utilise les balises span pour être en mesure de trouver dynamiquement certains morceaux de mon texte. Par exemple:

Cher, [Prénom]

est inséré dans mon htmlText, et je les utiliser pour analyser la Salutation et l'étiquette de mes données variables.

Quelqu'un sait-il de toute solution pour ces deux questions? Toutes les idées alternatives sur la façon d'analyser des morceaux de html? De toute façon d'améliorer htmlText? Comment mesurer correctement textHeight et / ou supprimer padding?

Merci!

Était-ce utile?

La solution

En fait, les besoins d'étiquette largeur et la hauteur définie de manière explicite pour que flex pour calculer correctement la hauteur de ces éléments. , Vous pouvez également utiliser:

invalidateSize();
validateSize();

Pour la validation de la taille de la force de se produire, qui va parfois aider!

Autres conseils

  1. Ajoutez ces deux lignes avant d'utiliser un XML:

    XML.ignoreWhitespace = true;
    XML.prettyPrinting = false;
    

    Cela devrait prendre soin des lignes ajoutées ci-dessus et en dessous de votre texte.

    ignoreWhitespace des bandes espaces avant et de votre nœuds de texte.
    prettyPrinting , lorsqu'il est réglé sur true, formats la sortie XML , et en ajoutant des nœuds indenter caractères pour le rendre newline plus lisible - mais aussi la sortie de texte affectant. Par exemple, lorsque vous avez une structure comme ceci:

    <p><span class="test">This is a test.</span></p>
    

    Sortie clignote:

    <p>
        <span class="test">
            This is a test.
        </span>
    </p>
    

    Cela conduit à votre TextField affichage:

    (newline)
    (newline)
    This is a test.
    (newline)
    (newline)
    
  2. Le plugin Flash supprimera toutes les balises HTML, si la propriété styleSheet n'est pas réglé correctement. Donc, dans votre cas, il supprimera les balises <span> et ajouter ses propres <P> et balises <FONT> à la place, selon des informations de police que vous avez spécifié à l'aide defaultTextFormat ou setTextFormat (essayez de tracer htmlText après avoir réglé - vous verrez) . si vous voulez garder vos propres tags Vous devez définir la propriété styleSheet à une StyleSheet réelle du TextField,.

  3. Parsing les informations dont vous avez besoin en utilisant des balises HTML est un moyen valable d'aller. Je l'habitude d'utiliser des espaces réservés numérotés comme {0} et string.replace () pour insérer des valeurs dynamiques.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top