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 在 Adobe Developer Connection的一篇博客文章。