2009-11-20 6 views
1

Existe-t-il un moyen de créer une liste à puces flash avec des puces personnalisées? Si oui, cela peut-il être utilisé depuis un TextArea dans Flex (mx.controls.TextArea) lors de la définition de htmlText?Puces personnalisées dans Flash

Par exemple:

<li>Item</li> 
<li>Item</li> 

La liste ci-dessus rend bien quand mis en TextArea à l'aide htmlText (contre couchait la propriété de texte). Le texte rendu aura des puces à la vanille standard. Existe-t-il un moyen de styliser ces puces avec des images personnalisées, comme vous pouvez le faire en HTML/CSS standard?

Merci!

Répondre

2

Je vais dire avec certitude que vous ne pouvez pas. TextArea fait inévitablement référence à un générique flash.text.TextField qui gère le rendu du texte HTML (il appelle en fait createInFontContext(UITextField) pour créer son moteur de rendu de texte et UITextField hérite de TextField). Si vous regardez la documentation TextField:

TextField documentation

vous remarquerez que cela rend l'aide d'un flash.text.StyleSheet. Si vous regardez ces documents:

StyleSheet documentation

vous verrez qu'il ne supporte pas les balles personnalisées.

Vous êtes vraiment parti avec quelques alternatives. Vous pouvez essayer de superposer les puces avec des images manuellement (avec la classe Image, par exemple) ou d'utiliser d'autres composants Flex pour rendre la liste.

2

Je ne veux pas sauter le pistolet et dire non. Mais je ne pense vraiment pas que tu puisses. Je n'ai jamais pu et je ne peux pas trouver des documents ou des exemples qui en parlent même. Donc, je vais devoir concéder à non, il n'y a actuellement aucun moyen. Le mieux que vous puissiez faire est de dessiner la liste vous-même en utilisant des composants flex standard.

+0

Je suis assez sûr que vous avez raison. On dirait vraiment ... stupide. – TTar

+0

J'ai toujours pensé que le texte html était juste une réflexion après coup avec flash. Quelque chose qu'Adobe pourrait avoir à se contenter de dire: «Regardez l'homme était cool, le texte HTML est là où c'est!» – greggreg

+0

Dans Flex 4, il y a beaucoup d'améliorations à apporter au rendu HTML et la possibilité d'appliquer des feuilles de style.Vous aurez peut-être plus de chance dans cette version de Flex quand elle viendra. @ –

1

Oui, utiliser un HBox contenant deux éléments:

  1. une image de la balle de votre choix
  2. et l'élément de liste

Ensuite vient de mettre la HBox à l'intérieur d'un composant répéteur.

<mx:Repeater dataProvider=" [refer to an array with your list] "> 
    <mx:HBox> 
     <mx:Image source="{ [refer to your image class of choice here] }"/> 
     <mx:Label text="{data.text}"/> 
    <mx:HBox> 
<mx:Repeater> 

Ceci est particulièrement utile pour les listes dynamiques.

0

Vous pouvez entrer les points manuellement et les styler comme vous le souhaitez, mais vous perdez l'indentation.

<font color='#FFE400'> • </font> My bulleted item<br> 
<font color='#FFE400'> • </font> My bulleted item<br> 
<font color='#FFE400'> • </font> My bulleted item<br> 

Il y a aussi une autre approche sur ce site

http://blog.formatlos.de/2009/06/18/styling-html-textfield-bullet-points/