Как добавить мнемонический символ к обычной кнопке во Flex? (Нужно что для ярлыков) - PullRequest
1 голос
/ 06 мая 2009

Как добавить мнемонический символ к обычной кнопке во Flex? Покажите мне несколько примеров.

Ответы [ 3 ]

2 голосов
/ 03 июня 2009

1-е решение:

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

Просто установите значение кодировки файла mxml, и вы можете ввести специальный символ прямо в. Тип кодировки ISO-8859-1 работает для меня с символ ©.

2-е решение:

Давайте рассмотрим пример, escape-последовательность © определена только для HTML, а не для XML. В соответствии с рекомендацией W3C XML 1.0, только несколько таких мнемонические escape-последовательности определены. Тем не менее, вы можете включить другие символы с использованием числовых ссылок на символы, указав их Юникод кодовые точки.

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

Например, символ авторского права может быть выражен как (без двойные кавычки): "©" или "& xA9;" (шестнадцатеричный). Это будет работать при условии, что используемый шрифт имеет глифы для кода на которые вы ссылаетесь (поскольку Unicode определяет символы и символы из очень широкий ассортимент языков, многие из которых не будут существовать в все шрифты.

Для получения списка всех символов Unicode и их кодовых точек, вы можете обратитесь к таблицам кодов Unicode, доступным здесь:

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

Вы также можете списки онлайн, давая кодовые очки для некоторых из более общие символы, и большинство операционных систем теперь поставляются с символом или средство выбора символов (например, утилита отображения символов в Microsoft Windows), которое будет часто перечисляют также кодовые знаки персонажей.

2 голосов
/ 07 июня 2009

Вот расширенный компонент кнопки, который может помочь вам справиться с задачей:

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);
    }
}
}

Просто поместите символ "~" перед символом, который вы хотите подчеркнуть, чтобы показать, что это сокращенный мнемонический символ.

Пример (вам нужно будет добавить xmlns:test="test.*" к компоненту контейнера):

<test:ShortcutButton label="~Update" />
1 голос
/ 06 мая 2009
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...