Прежде всего - я бы настоятельно рекомендовал бы использовать элементы управления списком искры вместо элементов управления MX.Элементы управления свечей ведут себя гораздо более предсказуемо.
Следующее относится к элементам управления свечами - оно может работать с элементами управления mx, но YMMV.
Вы устанавливаете альфапрокси при вызове DragManager.doDrag(...)
( см. apache aliveocs .
Компоненты списка вызывают для вас DragManager.doDrag()
, когда вы устанавливаете dragEnagled="true"
. Вы можете переопределить это и вызвать егоВы сами обрабатываете событие dragStart
.
Итак, при заданном элементе управления списком искр, например:
<s:List
id="list"
dataProvider="{listData}"
allowMultipleSelection="true"
dragEnabled="true"
dragMoveEnabled="true"
dragComplete="onDragComplete(event)"
dragStart="list_dragStartHandler(event)" />
Ваш обработчик dragStart
может выглядеть так:
protected function list_dragStartHandler(event:DragEvent):void
{
if( event.dragSource ) {
// under some conditions, this event fires multiple times,
// we only care about it, if the dragSource isn't set yet.
return;
}
event.preventDefault();
// create the drag source, and stuff it into the event
//
var dragSource:DragSource = new DragSource();
event.dragSource = dragSource;
// let the spark list control add the default data formats
list.addDragData(dragSource);
// you can add your own data formats here
// by calling `dragSource.addHandler(...)`
// now, tell DragManager to initiate the drag
//
DragManager.doDrag(
event.dragInitiator, dragSource, event,
list.createDragIndicator(),
0, 0, /* offsets: x,y */
0.2, /* imageAlpha */
list.dragMoveEnabled
);
}
Обратите внимание, что imageAlpha
является последним последним параметром вызова DragManager.doDrag(...)