0
我有一個圖像從URL加載並添加到畫布作爲孩子。然後我拖放另一個圖像,它也使用了雙目變換,因此圖像可以在畫布上轉換。我用這種方式編碼,只有在把它放在畫布上之後,變換手柄才顯示出來。圖像正確顯示。但是我試圖保存結果圖像(即主圖像和放置在其上的圖像),我只能結束之前加載的主圖像。丟棄的圖像不顯示。Flex保存畫布和丟棄的圖像
下面是dragDrop事件觸發的handleDrop()的代碼,並準備最終的圖像。我究竟做錯了什麼?
var dragInitiator:IUIComponent = dragEvent.dragInitiator;
var dropTarget:IUIComponent = dragEvent.currentTarget as IUIComponent;
var tool:TransformTool = new TransformTool(new ControlSetStandard());
var items:String = dragEvent.dragSource.dataForFormat("items") as String;
var img:Image = new Image();
img.x=50;
img.y=50;
img.width=55;
img.height=55;
img.source=items.toString();
var bitmap:Bitmap= Bitmap(img.content);
var tool:TransformTool = new TransformTool(new ControlSetStandard());
var component:UIComponent = new UIComponent();
tool.target = img;
tool.x=myCanvas.x;
tool.y=myCanvas.y;
addElement(component);
myCanvas.addChild(img);
img.z=myCanvas.z+1;
component.addChild(tool);
original=new BitmapData(bmd.width,bmd.height,true,0x000000FF);
original.draw(myCanvas);
試過了。我使用最後兩行代碼創建了一個新函數,它將畫布繪製到位圖數據,並使用callLater從handleDrop中調用它。但它不起作用。 – redGREENblue 2011-06-10 20:51:33
哦,等一下,你設置的源代碼是一個URL?是的,這需要一幀以上的時間來獲取它,然後繪製它。只需在圖像完成加載和繪製時添加一個「完整的」事件偵聽器。 – 2011-06-10 20:56:43
工作。謝謝。儘管我遇到了一個不同的問題。原始圖像大小大於畫布大小,圖像在畫布上縮放,但在保存時,我想用原始大小而不是畫布大小來保存它。但這種情況下的圖像會隨着畫布尺寸而保存,因此會更小。在這種情況下如何保存原始尺寸的圖像? – redGREENblue 2011-06-10 22:39:26