如何在Flex中的常规按钮中添加助记符? (需要快捷方式)

时间:2009-05-06 08:20:46

标签: flex flex3

如何在Flex中的常规按钮中添加助记符?给我看一些例子。

3 个答案:

答案 0 :(得分:2)

第一个解决方案:

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

< mx:Application xmlns:mx =“http://www.adobe.com/2006/mxml”>

只需设置mxml文件的编码值,即可输入 特殊字符.ISO-8859-1编码类型适用于我 ©符号。

第二个解决方案:

我们的例子,©转义序列仅为HTML定义,而不是XML。 根据W3C XML 1.0的推荐,只有少数这样的 定义了助记符转义序列。但是,您可以包含其他 使用数字字符引用的字符通过指定它们 Unicode代码点。

请参阅:http://www.w3.org/TR/REC-xml/#syntax

例如,版权符号可以表示为(不含) 双引号):“©”或“& xA9;” (十六进制)。这样可行 如果您使用的字体具有代码点的字形 您正在引用的(因为Unicode定义了来自的字符和符号)   各种各样的语言,其中许多语言不存在 所有字体。

有关所有Unicode字符及其代码点的列表,您可以 请参考此处提供的Unicode代码表:

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

您还可以在线列出一些更多的代码点 常见的符号,现在大多数操作系统都带有一个字符或 符号选择器(例如Microsoft Windows'字符映射实用程序)即可 通常也会列出字符的代码点。

答案 1 :(得分:2)

这是一个扩展按钮组件,可以帮助您处理任务:

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" />

答案 2 :(得分:1)