0
我正在做一个ItemRenderer的拖放手动(DataGrid),并且想知道如何生成未添加到显示的组件的自定义DragProxy名单。Flex 4使用自定义DragProxy拖放
我想是这样的,但没有奏效:
private function doDrag(event:MouseEvent):void
{
var dragSource:DragSource = new DragSource();
dragSource.addData(data, 'dnd_format');
//var bm:Bitmap = new Bitmap(ImageSnapshot.captureBitmapData(this));
var btn:Button = new Button();
btn.label = 'New Button';
var bm:Bitmap = new Bitmap(ImageSnapshot.captureBitmapData(btn));
var dragProxy:Image = new Image();
dragProxy.source = bm;
DragManager.doDrag(this, dragSource, event, dragProxy,0,0, 0.6);
}
所以,我希望能够用一个组件来创建DragProxy,按钮就是一个例子。 任何想法?
yeap,两种情况下工作。我如何拍摄尚未添加到显示列表的组件的快照? – oscarm 2010-10-15 18:38:01
我不认为你能做到这一点,因为组件直到组件生命周期的后期才抽出。换句话说,你无法从没有机会添加到显示列表的组件中获取位图并首先绘制自己。如果新组件是您实际想要添加到显示列表的组件,则可以使用callLater方法来获取您的快照。该方法将一个指定的方法调用添加到事件队列的末尾,让您的新组件有机会在您为代理获取位图之前自行设置并绘制自己。希望有所帮助。 – 2010-10-15 19:29:18
谢谢。我认为这与Fex用于印刷的东西类似。它将组件加载到不可见容器中以生成快照... – oscarm 2010-10-16 18:22:51