我想创建一个tilelist,其中会有不同的canvas或vbox等,我想让它们拖拽。
我写了一个代码来执行此操作,但输出不会在列表中显示任何内容。
<mx:TileList width="1500" height="1000" dragMoveEnabled="true"
selectable="true" selectionColor="#FFFFFF"
dragEnabled="true" dropEnabled="true"
columnCount="1" rowHeight="160">
<mx:dataProvider>
<mx:Array>
<mx:Canvas width="1450" height="100">
<mx:Button label="Testin the buttong"/>
</mx:Canvas>
<mx:Canvas width="1450" height="100">
<mx:Button label="Testin"/>
</mx:Canvas>
</mx:Array>
</mx:dataProvider>
</mx:TileList>
我该如何解决这个问题?或者让我知道我在这里做错了什么?
谢谢和问候 Zeeshan
答案 0 :(得分:0)
您的dataProvider应该包含某种对象。从理论上讲,它们可以是Canvas的实例,但使用可视组件作为dataProvider非常不寻常。您想要做的是阅读itemRenderers。 itemRenderer是一个组件,用于渲染dataProvider的每个实例。
尝试这样的事情:
<mx:script><[[
public var mydb : Array = [
{label: 'Testin the buttong'},
{label: 'Testin'}
]
]]></mx:script>
<mx:TileList width="1500" height="1000" dragMoveEnabled="true"
selectable="true" selectionColor="#FFFFFF"
dragEnabled="true" dropEnabled="true"
columnCount="1" rowHeight="160" dataProvider="{mydp}">
<mx:itemRenderer>
<mx:Component>
<mx:Canvas width="1450" height="100">
<mx:Button label="{data.label}"/>
</mx:Canvas>
</mx:Component>
</mx:itemRenderer>
</mx:TileList>
简而言之,我在脚本中使用通用对象定义了dataProvider。我在线定义了一个itemRenderer。这样的事情至少应该有一些东西出现。
我不确定Canvas是否可以拖动,因为它通常没有任何东西可以点击以开始拖动。您可能想要考虑TitleWindow。
我在浏览器中编写了代码,因此适用标准免责声明。