我可以在 flex Graphics 对象上设置文本吗?

Ale*_*exC 3 apache-flex graphics datagrid

无论如何我可以有效地调用 equiv. Flex 图形对象上的 setText ?

具体来说,我使用自定义单元格渲染器在数据网格中显示数据。渲染器使用 Graphics 对象根据基础数据仅设置单元格一部分(例如左半部分)的背景颜色。我希望能够仅在具有背景颜色的单元格部分(例如在左半部分居中)上显示文本。

我知道(单元格本身和图形对象的所有宽度),但我不知道如何在图形对象上设置文本(居中)。

有人有任何想法吗?虚拟机

小智 5

这是一个避免添加 UI 组件的解决方案:

    private function WriteText(text:String, rect:Rectangle):void
    {
        var uit:UITextField = new UITextField();
        uit.text = text;
        uit.width = rect.width;
        var textBitmapData:BitmapData = ImageSnapshot.captureBitmapData(uit);
        var matrix:Matrix = new Matrix();
        var x:int = rect.x;
        var y:int = rect.y;
        matrix.tx = x;
        matrix.ty = y;
        graphics.beginBitmapFill(textBitmapData,matrix,false);
        graphics.drawRect(x,y,uit.measuredWidth,uit.measuredHeight);
        graphics.endFill();
    }
Run Code Online (Sandbox Code Playgroud)

这个想法是使用 UITextField 创建一个位图,可以与图形对象一起使用来填充一个矩形。

这是基于Olga Korokhina 在 Adob​​e Developer Connection的一篇博客文章