事实上,它们(皮肤和 itemRenderers)似乎都使用 flash.graphics.* 包进行绘图。我之前在皮肤和 itemRenderers 之间复制了粘贴代码,所以我真的不明白其中的区别。与皮肤相比,我在实现 itemRenderers 方面有更多的经验,所以这可能是问题的一部分。谢谢,让我知道。
问问题
997 次
1 回答
4
皮肤是可以应用于各种 UIComponents 的图形元素。容器可以有borderSkins,而Buttons可以有不同的up/over/down 皮肤。它们可以通过多种方式实现,包括使用绘图 API(“程序皮肤”)或通过嵌入资产(“图形皮肤”)。皮肤通常非常轻量级,可能只是 Flash DisplayObject 而不是 Flex UIComponent,后者更重量级但包含更多功能。
itemRenderer 通常是基于列表的控件用来显示项目的 UIComponent。在使用 DataGrid/DataGridColumn 时,您通常还使用 itemRenderers。大多数使用 itemRenderer 的组件会回收它们,这意味着它们创建的数量与在屏幕上显示所需的数量一样多,并且当用户滚动数据时,相同的 itemRenderer 会重新定位并将新数据插入其中。这就是为什么 Lists 和 DataGrid 可以支持大量数据以及为什么尝试使用 Repeater 完成类似的事情会导致应用程序性能糟糕的原因之一。
于 2009-11-11T00:42:34.213 回答