Actionscript 3 AS3:无法使用嵌入的像素字体键入输入文本字段
为了在文本字段中使用像素字体,我在Flash IDE中创建了一个字体类。然后,我创建了一个TextField实例,其中嵌入了字体,抗锯齿设置为位图。我用所有这些东西导出一个SWC 我创建了一个具有良好API的类,以便能够轻松处理这些内容 在FDT中,我使用类,这一切都正常工作 这里的问题是,我现在想使用其中一个文本字段作为输入。我尝试将textfield类型设置为TextFieldType.INPUT,但是它唯一能做的就是允许我选择文本,我无法输入。我还创建了另一个资产,其类型已设置为input,但也不起作用 我试着只使用资产,而不是我的类,然后我可以键入ok 有没有什么东西可以防止文本字段一旦成为精灵的一部分就无法编辑?下面是我的类与API的代码:Actionscript 3 AS3:无法使用嵌入的像素字体键入输入文本字段,actionscript-3,embed,pixel-fonts,Actionscript 3,Embed,Pixel Fonts,为了在文本字段中使用像素字体,我在Flash IDE中创建了一个字体类。然后,我创建了一个TextField实例,其中嵌入了字体,抗锯齿设置为位图。我用所有这些东西导出一个SWC 我创建了一个具有良好API的类,以便能够轻松处理这些内容 在FDT中,我使用类,这一切都正常工作 这里的问题是,我现在想使用其中一个文本字段作为输入。我尝试将textfield类型设置为TextFieldType.INPUT,但是它唯一能做的就是允许我选择文本,我无法输入。我还创建了另一个资产,其类型已设置为input
package net.jansensan.as3fflikeui.text
{
// + ----------------------------------------
// [ IMPORTS ]
// + ----------------------------------------
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.events.Event;
import flash.text.StyleSheet;
import flash.text.TextField;
import flash.text.TextFieldType;
/**
* @author Mat Janson Blanchet
*/
public class BitmapTextfield extends Sprite
{
// + ----------------------------------------
// [ CONSTANTS ]
// + ----------------------------------------
[Embed(source="../assets/css/ui.css", mimeType="application/octet-stream")]
private const CSS :Class;
// + ----------------------------------------
// [ VARIABLES ]
// + ----------------------------------------
// display objects
private var _textfieldAsset :MovieClip;
private var _textfield :TextField;
private var _shadow :BitmapTextfieldAsset;
// private / protected
private var _styleSheet :StyleSheet;
// + ----------------------------------------
// [CONSTRUCTOR ]
// + ----------------------------------------
public function BitmapTextfield(type:String = TextFieldType.DYNAMIC)
{
switch(type)
{
case TextFieldType.DYNAMIC:
_textfieldAsset = new BitmapTextfieldAsset();
_textfield = _textfieldAsset.textfieldTXT;
_textfield.selectable = false;
break;
case TextFieldType.INPUT:
_textfieldAsset = new BitmapInputTextfieldAsset();
_textfield = _textfieldAsset.textfieldTXT;
_textfield.selectable = true;
break;
}
_textfield.htmlText = "";
_shadow = new BitmapTextfieldAsset();
_shadow.textfieldTXT.htmlText = "";
_shadow.x = 1;
_shadow.y = 1;
_styleSheet = new StyleSheet();
_styleSheet.parseCSS(new CSS());
setStyle(_styleSheet);
addChild(_shadow);
addChild(_textfieldAsset);
}
// + ----------------------------------------
// [ PUBLIC METHODS ]
// + ----------------------------------------
public function setWidth(newWidth:int):void
{
_textfield.width = newWidth;
_shadow.textfieldTXT.width = newWidth;
}
public function setHeight(newHeight:int):void
{
_textfield.height = newHeight;
_shadow.textfieldTXT.height = newHeight;
}
public function setStyle(newStyle:StyleSheet):void
{
_styleSheet = newStyle;
_textfield.styleSheet = _styleSheet;
}
public function setText(newText:String):void
{
_textfield.htmlText = newText;
_shadow.textfieldTXT.htmlText = newText;
}
public function getText():String
{
return _textfield.text;
}
public function getHTMLText():String
{
return _textfield.htmlText;
}
public function getTextNumLines():uint
{
return _textfield.numLines;
}
}
}
任何指导都会很有用,提前谢谢
-mat.带有样式表的文本字段不可编辑。换句话说,type属性设置为
TextFieldType.INPUT
的文本字段将样式表
应用于文本字段的默认文本,但用户将不再编辑内容。考虑使用<代码>文本格式< /Cord>类将样式分配给输入文本字段。是否使用非嵌入式字体?