为什么 scaleY=-1 不反映 AS3 代码中的文本?
Why doesn't scaleY=-1 reflect text in AS3 code?
我正在尝试在 AS3 中动态创建文本,然后反映它。想到的最明显的方法是将其作为文本字段嵌入到 sprite 中,然后按如下方式反映 sprite:
var mySprite = new Sprite();
addChild(mySprite);
charField = new TextField()
charField.text = "a"
mySprite.addChild(charField)
mySprite.scaleY = -1
Bu 使用此代码时屏幕上没有显示任何内容。如果我删除 scaleY
命令,那么 a
将正常显示。我是否需要启用一些 属性 来操纵文本?
在 AS3 中,如果未嵌入字体,则不能像这样转换 TextField。顺便说一下,这同样适用于 TextField 的旋转。
简单地将 TextField 的 embedFonts 属性 设置为 true 并不能做到这一点,因为这实际上不会嵌入字体。
试试这个:
package
{
import flash.display.Sprite;
import flash.events.Event;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.text.TextFormat;
public class Main extends Sprite
{
[Embed(systemFont="Arial",fontName="theFont",mimeType="application/x-font",fontWeight="normal",fontStyle="normal",advancedAntiAliasing="true",embedAsCFF="false")]
private var theEmbeddedFont:Class;
public function Main():void
{
if (stage)
init();
else
addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
var format:TextFormat = new TextFormat();
format.font = "theFont";
format.size = 44;
var mySprite:Sprite = new Sprite();
addChild(mySprite);
var charField:TextField = new TextField();
charField.defaultTextFormat = format;
charField.embedFonts = true;
charField.autoSize = TextFieldAutoSize.CENTER;
charField.wordWrap = false;
charField.text = "a";
mySprite.addChild(charField);
mySprite.x = mySprite.y = 100;
mySprite.scaleY = -1;
}
}
}
我正在尝试在 AS3 中动态创建文本,然后反映它。想到的最明显的方法是将其作为文本字段嵌入到 sprite 中,然后按如下方式反映 sprite:
var mySprite = new Sprite();
addChild(mySprite);
charField = new TextField()
charField.text = "a"
mySprite.addChild(charField)
mySprite.scaleY = -1
Bu 使用此代码时屏幕上没有显示任何内容。如果我删除 scaleY
命令,那么 a
将正常显示。我是否需要启用一些 属性 来操纵文本?
在 AS3 中,如果未嵌入字体,则不能像这样转换 TextField。顺便说一下,这同样适用于 TextField 的旋转。 简单地将 TextField 的 embedFonts 属性 设置为 true 并不能做到这一点,因为这实际上不会嵌入字体。
试试这个:
package
{
import flash.display.Sprite;
import flash.events.Event;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.text.TextFormat;
public class Main extends Sprite
{
[Embed(systemFont="Arial",fontName="theFont",mimeType="application/x-font",fontWeight="normal",fontStyle="normal",advancedAntiAliasing="true",embedAsCFF="false")]
private var theEmbeddedFont:Class;
public function Main():void
{
if (stage)
init();
else
addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
var format:TextFormat = new TextFormat();
format.font = "theFont";
format.size = 44;
var mySprite:Sprite = new Sprite();
addChild(mySprite);
var charField:TextField = new TextField();
charField.defaultTextFormat = format;
charField.embedFonts = true;
charField.autoSize = TextFieldAutoSize.CENTER;
charField.wordWrap = false;
charField.text = "a";
mySprite.addChild(charField);
mySprite.x = mySprite.y = 100;
mySprite.scaleY = -1;
}
}
}