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随着设置到项目渲染器的数据的变化而动态变化。希望有帮助。