gpt4 book ai didi

actionscript-3 - AS3 文本输入口音

转载 作者:行者123 更新时间:2023-12-04 06:21:37 25 4
gpt4 key购买 nike

我通过代码创建了一个动态设置为输入模式的 AS3 TextField,但是当用户尝试输入一些特殊字符(例如 á à é è í ì ó ò ù ç)时,它们根本不会出现在 TextInput 上。

将它们复制并粘贴到文本字段是可行的,但我希望用户可以直接输入它们。

这是一个快速测试来证明这一点:

package
{
import flash.display.Sprite;
import flash.text.TextField;
import flash.text.TextFieldType;

public class TextInput extends Sprite
{
public function TextInput()
{
super();

var t:TextField = new TextField;
t.type = TextFieldType.INPUT;
addChild(t);
}
}
}

这将创建一个用户可以输入的文本字段,但我不能输入像 à 这样的特殊字符。

非常感谢。

最佳答案

如果您可以将其粘贴到“输入”字段中,则您应该可以输入它。

如果您开始一个新的 Flash 文档,使用与上面相同的字体在舞台上创建一个输入文本字段,并使用以下设置:

嵌入普通字形
enter image description here

嵌入扩展的拉丁字形
enter image description here

这应该有效,因为:
enter image description here

现在,如果所有这些都有效,那么它可能与类的编写方式有关。

坦率地说,编写嵌入字体的类是一种痛苦。确保将字体嵌入库中并将其导出为 ActionScript :

enter image description here

之后,您需要使用以下代码:

// The name of the font class
var _font:Calibri = new Calibri();

var _textFormat:TextFormat = new TextFormat();
_textFormat.font = _font.fontName;
_textFormat.size = 16;

// For some weird reason the ordering here is important. I remember mucking around with this for ages for an old project. EmbedFonts must come last
var _textField:TextField = new TextField();
_textField.defaultTextFormat = _textFormat;
_textField.type = TextFieldType.INPUT;
_textField.embedFonts = true;

addChild(_textField);

这应该让一切正常:

enter image description here

** 编辑 **
对于那些使用 FlashDevelop 等的人,您可以使用以下方法:
public class Main extends MovieClip {

[Embed(source='assets/HOBOSTD.OTF', fontName='_hobo', embedAsCFF="false")] public static const HOBO:Class;

public function Main() {
var _font:Font = new HOBO() as Font;

var _textFormat:TextFormat = new TextFormat();
_textFormat.font = _font.fontName;
_textFormat.size = 22;

var _textField:TextField = new TextField();

_textField.embedFonts = true;
_textField.defaultTextFormat = _textFormat;
_textField.autoSize = TextFieldAutoSize.LEFT;
_textField.antiAliasType = AntiAliasType.ADVANCED;
_textField.type = TextFieldType.INPUT;

addChild(_textField);
}
}

您将获得以下信息:

enter image description here

现在请注意,字体文件必须与您的项目相关,或者如果您愿意,源文件可以指向 C:\windows\font 文件夹。在上面的示例中,我将字体复制到我的 Assets 文件夹中。

关于actionscript-3 - AS3 文本输入口音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6486254/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com