在itemrenderers之间启用拖放

时间:2012-12-13 12:26:03

标签: flex drag-and-drop itemrenderer

我的mxml应用程序中有两个tilelists。项目(图像和标签)由itemrenderer呈现。我想要实现的功能:从tilelist#1拖动图像并将其放在tilelist#2上(然后将启动带有sql查询的httpservice)。

我该如何解决这个问题? (高级信息就足够了)。 我遇到的主要问题是我不知道如何调用从main到itemrenderer的方法。我想在渲染器中编写d& d功能,但我不知道如何从渲染器中访问监视列表#2。 main.mxml中的相关代码:

<s:Panel id="panel"  width="100%" height="100%" title="Watchlist">
<s:layout>
<s:VerticalLayout paddingBottom="5" paddingLeft="20"
                          paddingRight="20" paddingTop="5"/>
    </s:layout>
    <s:Label width="20%" fontSize="17" fontWeight="bold" text="Your watched movies"/>
    <mx:TileList id="myWatchedList_tile" height="360" borderVisible="false" width="80%"
                 columnCount="5" columnWidth="200"
                 itemRenderer="components.TileListItemRenderer" rowCount="1" rowHeight="360"/>
    <s:Label width="20%" fontSize="17" fontWeight="bold" text="Your to watch movies"/>


    <mx:TileList id="myToWatchList_tile"  height="360" borderVisible="false" width="80%"
                 columnCount="5" columnWidth="200"
                 itemRenderer="components.TileListItemRenderer" rowCount="1" rowHeight="360" />

</s:Panel>

itemrenderer:

<?xml version="1.0" encoding="utf-8"?>
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml"
     borderVisible="false" horizontalAlign="center" verticalAlign="middle"
     xmlns:components="components.*">



    <mx:Image source="{data.poster_url}" />
    <mx:Label text="{data.movie_title}" height="20" />
</mx:VBox>

2 个答案:

答案 0 :(得分:0)

您可以使用outerDocument对象访问项呈示器外部的方法。确保它们是(范围)公共方法。

http://www.adobe.com/devnet/flex/articles/itemrenderers_pt1.edu.html

答案 1 :(得分:0)

替代解决方案可能是使用火花列表(使用TileLayout) - 然后您可以轻松地在列表之间使用拖放:http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf69084-7cfd.html

..并启动服务以响应'drop'事件(事件将引用已删除的图像)