关于 apache flex:如何使用运行时生成的 Sprite 对象作为 List 或 Tree 的图标?

How to use a runtime generated Sprite object as the icon of a List or Tree?

几个月来我一直在寻找这个问题。

默认情况下,List 和 Tree 的 iconFunction 仅返回 Class 作为图标,用于嵌入图像或由本站 http://blog.benstucki.net/?p=42 提供的 iconUtility。它适用于预先创建的图像。

但我真正想要的是接受一个完全运行时生成的sprite对象,类似于 Legend 所做的,颜色根据当前状态而变化。我假设我可以做一些事情来使 ListBase 接受 Class 以外的图标参数。我有礼吗?或者请告诉我该怎么做。

非常感谢!

野狗


我不确定这是否正是你想要做的,但你可以很容易地将你的 sprite 转换为 BitmapData(你可以使用它来创建 BitmapAsset)

例如

1
2
3
4
var bmp:BitmapData = new BitmapData(sprite.width, sprite.height);
bmp.draw(sprite);

var bmpasset:BitmapAsset = new BitmapAsset(bmp);


我将使用 TreeItemRenderer 作为起点创建自定义项目渲染器,而不是设置树项目的图标。然后将您想要的任何组件放在文本的左侧并将文本向右移动一点。这种方法的另一个优点是您可以让您的sprite随着设置到项目渲染器的数据的变化而动态变化。希望有帮助。