Flex容器变换矩阵问题

时间:2010-01-07 01:14:55

标签: flex matrix transform

我有一个Box容器,里面有一个标签元素。使用Matrix转换框时,标签元素不再可见。如何使元素可见?

<mx:Script>
    <![CDATA[

        private function onBoxClick(event:MouseEvent):void
        {
            var transformMatrix:Matrix = this.box.transform.matrix;
            transformMatrix.c = Math.PI * 2 * -15 / 360;; 
            this.box.transform.matrix = transformMatrix;
        }

    ]]>
</mx:Script>

<mx:HBox id="box" 
    x="100" y="100" 
    width="100" height="100" 
    backgroundColor="0x000000" 
    click="onBoxClick(event)">

    <mx:Label id="textLabel" text="This is a test" color="#FFFFFF" visible="true"/>
</mx:HBox>

1 个答案:

答案 0 :(得分:2)

我猜测Label组件中的TextField没有嵌入字体。如果您打算在动态文字上使用 .rotation .alpha ,则必须嵌入字体。

您可以使用常规TextField轻松测试:

var t:TextField = new TextField();
t.defaultTextFormat = new TextFormat('Verdana',12,0x000000);
t.embedFonts = true;
t.rotation = 10;
t.text = 'rotated';

addChild(t);

假设您在此示例中嵌入了Verdana字体。如果您注释掉第3行,您将看到文本消失。