2009-05-06 3 views

Répondre

2

Voici un composant de bouton étendu, qui peut vous aider à faire face à la tâche:

package test 
{ 
import mx.controls.Button; 
import flash.text.TextFormat; 

public class ShortcutButton extends Button 
{ 
    private static const underlineTF:TextFormat = new TextFormat(null, null, null, null, null, true); 

    public function ShortcutButton() 
    { 
     super(); 
    } 

    protected var shortcutPosition:int = -1; 

    override public function set label(value:String):void 
    { 
     shortcutPosition = value.indexOf("~"); 
     if (shortcutPosition >= 0) 
      value = value.substring(0, shortcutPosition) + value.substring(shortcutPosition + 1); 
     super.label = value; 
    } 

    override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void 
    { 
     super.updateDisplayList(unscaledWidth, unscaledHeight); 
     if (shortcutPosition > -1 && shortcutPosition < textField.text.length - 1) 
      textField.setTextFormat(underlineTF, shortcutPosition, shortcutPosition+1); 
    } 
} 
} 

Juste place « ~ » symbole avant le symbole que vous voulez souligner le montrer est un raccourci caractère mnémonique.

Exemple (vous devrez ajouter xmlns:test="test.*" au composant conteneur):

<test:ShortcutButton label="~Update" /> 
+0

Super! :-) Merci beaucoup. Une chose, "si (shortcutPosition == 0)" cas doit également être pris en compte. –

2

1ère solution:

< xml version = "1.0" encoding = "ISO-8859-1"? >

< mx: xmlns d'application: mx = "http://www.adobe.com/2006/mxml" >

Il suffit de définir la valeur de codage du fichier MXML et vous pouvez saisir le caractère spécial right in. Le type d'encodage ISO-8859-1 fonctionne pour moi avec le symbole ©.

2ème solution:

Let exemple, la séquence d'échappement © est uniquement définie pour le HTML, et non XML. Selon la recommandation W3C XML 1.0, seulement une poignée de telles séquences d'échappement mnémoniques sont définies. Toutefois, vous pouvez inclure d'autres caractères en utilisant des références de caractères numériques en spécifiant leurs points de code Unicode .

Voir: http://www.w3.org/TR/REC-xml/#syntax

Par exemple, le symbole du droit d'auteur peut être exprimée soit (sans les guillemets): "©" ou "&xA9;" (hexadécimal). Cela fonctionnera à condition que la police que vous utilisez a les glyphes pour le code que vous référencez (comme Unicode définit des caractères et des symboles de un très large éventail de langues, dont beaucoup n'existeront pas en . toutes les polices

pour une liste de tous les caractères Unicode et leurs points de code, vous pouvez consulter les tableaux de code Unicode disponibles ici:

http://www.unicode.org/charts/

vous pouvez les lists en ligne donnant les points de code pour certains plus symboles communs, et la plupart des systèmes d'exploitation viennent maintenant avec un caractère ou sélecteur de symboles (par ex. L'utilitaire de mappage de caractères de Microsoft Windows) qui va souvent liste également les points de code des caractères.

Questions connexes