J'ai un composant dans Flex, et une partie de ce composant est une étiquette. Y at-il un moyen d'ajuster automatiquement la taille de la police pour tenir dans son conteneur?Adobe Flex - un moyen de changer automatiquement la taille de la police pour tenir dans son conteneur?
Répondre
Pas automatiquement (du moins pas que je sache), sans mettre en place une sorte de gestionnaire d'événements, et d'agir sur l'occurrence de certains événements. Voici une application simple AIR qui démontre une approche - dans ce cas, un événement resize déclenchant un changement dans la fontSize d'un Label:
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="this_creationComplete()">
<mx:Script>
<![CDATA[
import mx.binding.utils.BindingUtils;
import mx.binding.utils.ChangeWatcher;
[Bindable]
public var myValue:int = 0;
private function this_creationComplete():void
{
setSize();
addEventListener(Event.RESIZE, handleResize);
}
private function handleResize(event:Event):void
{
setSize();
}
private function setSize():void
{
lbl.setStyle("fontSize", this.height/2);
}
]]>
</mx:Script>
<mx:Label id="lbl" text="Hello, world!" />
</mx:WindowedApplication>
Ici, lorsque l'application se redimensionnée, la propriété fontStyle de l'étiquette se change à la moitié de la taille de l'application; l'échelle de haut en bas et vous verrez comment cela fonctionne. Il y a certainement d'autres approches, comme toujours, mais comme il s'agit de styles et non de propriétés pouvant être liées, un petit codage personnalisé est très probablement nécessaire. J'espère que cela aide!
Si vous voulez dire une étiquette à une seule ligne, alors c'est le composant qui peut vous aider. Considérons qu'il ne peut que réduire la taille de la police (en réaction à la réduction de la largeur du conteneur).
import flash.events.Event;
import flash.text.TextLineMetrics;
import mx.controls.Label;
import mx.events.FlexEvent;
public class ElasticLabel extends Label {
private static const EXTRA_SPACE:Number = 2;
private static const MIN_FONT_SIZE:Number = 6;
private var fontResizeRequired:Boolean = false;
public function ElasticLabel() {
super();
addEventListener("explicitMaxWidthChanged", triggerFontResize);
addEventListener(FlexEvent.VALUE_COMMIT, triggerFontResize);
}
private function triggerFontResize(event:Event):void {
fontResizeRequired = true;
}
private function get currentWidth():Number {
var textMetrics:TextLineMetrics = measureText(text);
var textWidth:Number = textMetrics.width;
var paddings:Number = 0;
var paddingLeft:Number = getStyle("paddingLeft");
if (!isNaN(paddingLeft)) paddings += paddingLeft;
var paddingRight:Number = getStyle("paddingRight");
if (!isNaN(paddingRight)) paddings += paddingRight;
return textWidth + paddings + EXTRA_SPACE;
}
private function resizeFont():void {
if (!isNaN(maxWidth) && maxWidth > 0) {
var fontSize:Number = getStyle("fontSize") as Number;
while (maxWidth < currentWidth
&& fontSize > MIN_FONT_SIZE) {
fontSize -= 0.5;
setStyle("fontSize", fontSize);
}
}
}
override protected function updateDisplayList(unscaledWidth:Number,
unscaledHeight:Number):void {
super.updateDisplayList(unscaledWidth, unscaledHeight);
if (fontResizeRequired) {
resizeFont();
fontResizeRequired = false;
}
}
}
- 1. redimensionner taille de police dans la zone de texte automatiquement
- 2. UITextField changer la taille de la police via Interface Builder
- 3. WPF: changer la police de tous les contrôles dans un conteneur donné
- 4. Changer la police dans Aquamacs?
- 5. Taille de la police de cellule UITableView
- 6. changer la police pour un texte à une police pas dans les polices de la famille
- 7. Comment puis-je changer la taille de la police dans GTK?
- 8. Flex: lier la police fontSize à la moitié de la taille d'une autre étiquette?
- 9. Réglage police et taille de police du texte de la barre de titre dans un UITableViewController
- 10. Augmenter la taille de la police dans la légende d'octave?
- 11. Adobe flex taille maximale du fichier téléchargé
- 12. Comment changer la couleur de la police dans VB6?
- 13. Modifier uniquement la taille de police dans SWT
- 14. Impossible de changer de police dans java.awt.MenuBar
- 15. Est-il possible de changer dynamiquement la taille de la page dans un YUI Paginated Datatable?
- 16. Taille de police fixe dans firefox?
- 17. Couleur de police, taille, changement de police
- 18. Conteneur Flex avec des éléments de taille variable
- 19. Modifier la taille de police d'un ColumnHeader d'un GridView
- 20. Comment définir la taille de la police dans un champ de texte iPhone?
- 21. Flash AS2.0 - Augmenter la taille de la police de l'étiquette
- 22. La taille de la police CSS change quand la famille de police retombe
- 23. Est-il possible de changer la police dans la fenêtre d'édition SQL dans Access 2007?
- 24. UIStringDrawing Changer la couleur de la police - touche de cacao
- 25. Comment changer la couleur de la police d'un TextBox désactivé?
- 26. wpf: modifier la taille de police pour le contrôle WebBrowser
- 27. Taille de police globale WPF
- 28. Changer la couleur de la police runtime Android
- 29. Police et unité de taille de police pour les smartphones
- 30. Comment afficher un PDF dans Adobe Flex?