PDA

Просмотр полной версии : Чего за прикол с drag & drop - ом ?


Alexandor1984
07.03.2007, 10:11
Всем привет.
На словах объяснить не смогу дык лучше посмотрите пример.
Есть главный файл:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:ns1="*">
<ns1:HorizontalLst>
</ns1:HorizontalLst>
</mx:Application>

Файл с HorizontalList-ом:

<?xml version="1.0"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="initApp()" width="458" height="132">
<mx:Script>
<![CDATA[
import mx.collections.*;

public var arr:ArrayCollection = new ArrayCollection();

private function initApp():void
{
arr.addItem({label:"Текст1"});
arr.addItem({label:"Текст2"});
arr.addItem({label:"Текст3"});
arr.addItem({label:"Текст4"});
myList.dataProvider = arr;
}
]]>
</mx:Script>
<mx:HorizontalList id="myList"
dragEnabled="true"
dragMoveEnabled="true"
dropEnabled="true"
columnWidth="100"
rowHeight="100"
columnCount="4"
itemRenderer="renderer"
top="0"
bottom="0"
left="0"
right="0"/>
</mx:Canvas>

И рендерер:

<?xml version="1.0"?>
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml" width="108" height="70" initialize="initApp()">
<mx:Script>
<![CDATA[
private function initApp():void
{
var nom:int = this.parentDocument.arr.getItemIndex(data);
nom++;
position.text = "Позиция " + String(nom);
}
]]>
</mx:Script>
<mx:Label id="title" text="{data.label}"/>
<mx:Label id="position" color="#ff0000" fontWeight="bold" width="102"/>
</mx:VBox>

Прикол в том, что при перетаскивании ячейки не работает "this.parentDocument.arr.getItemIndex(data)".
Как мне это исправить?

7thsky™
07.03.2007, 16:08
не делать это в виде this.parentDocument.arr.getItemIndex(data),
сделай так чтобы твой рендер имплементировал
mx.controls.listClasses.IDropInListItemRenderer, в объекте BaseListData есть owner - что и есть интстанс твоего листа

Alexandor1984
07.03.2007, 17:35
Ого сколько умных слов :-). Мой словесный запас ограничен в этом :)
Мона както по другому объяснить (на пальцах)?
Я пока зеленый в этом :away: :away: