如何在Flex中的常规按钮中添加助记符?给我看一些例子。
答案 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)