0
Мне нужно настроить перетаскивание из Flex Tree. Для этого я переопределен защищенную функцию mouseDownHandler
:Пользовательское перетаскивание в Flex Tree
override protected function mouseDownHandler(event:MouseEvent):void
{
if (event.target is ScrollThumb || event.target is Button)
{
return;
}
super.mouseDownHandler(event);
var tree:Tree = Tree(event.currentTarget);
if (tree.selectedItem && tree.indexToItemRenderer(tree.selectedIndex) && tree.selectedItem is Image)
{
var image:Image = Image(tree.selectedItem);
var source:DragSource = new DragSource();
var dragView:Image = new Image();
dragView.source = drawGhost(image);
var dragInitiator:UIComponent = UIComponent(tree.indexToItemRenderer(tree.selectedIndex));
var ghostOffset:Point = dragInitiator.globalToLocal(new Point(event.stageX, event.stageY));
DragManager.doDrag(dragInitiator, source, event, dragView, ghostOffset.x, ghostOffset.y, 1);
}
}
private function drawGhost(image:Image):Bitmap
{
var ghostWidth:int = image.source.width;
var ghostHeight:int = image.source.height;
var sprite:Sprite = new Sprite();
sprite.graphics.beginFill(0xFF0000, 0.5);
sprite.graphics.drawRect(0, 0, ghostWidth, ghostHeight);
sprite.graphics.endFill();
var bitmapData:BitmapData = new BitmapData(sprite.width, sprite.height, false);
bitmapData.draw(sprite);
var bitmap:Bitmap = new Bitmap(bitmapData);
return bitmap;
}
Но я столкнулся с двумя проблемами:
- Если ширина или высота моего призрака составляет более 300 пикселей, на нем появляется градиент прозрачности. Мне это не нужно. Как я могу отключить эту функцию?
- Вторая проблема менее важна: перетаскивание элемента дерева вызывает вертикальную прокрутку. Любые идеи, как отключить его?
Gradient пример прозрачности:
Можете ли вы описать, что означает «прозрачность градиента»? Это было долгое время, но если я правильно помню, «аватар перетаскивания» (он же «призрак») имеет к нему примененную альфа (прозрачность). Это, я считаю, является визуальной подсказкой, что вы перетаскиваете элемент. Но я бы ожидал, что он должен быть прозрачным независимо от размера объекта. –
Я добавил пример моего «drag avatar». – mpMelnikov