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