Ваш 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.
Я написал код в браузере, поэтому применяются стандартные заявления об отказе.