Bonjour,
débutant depuis quelques jours seulement sur flex, je souhaite réaliser la copie d'une image lorsque je fais un drag and drop.
Pour le drag and drop aucun problème mais pour la copie de l'image, tout ce que j'ai essayé n'a pas fonctionné. J'imagine que ce ne doit pas être très compliqué...
Le code, le voici :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
private function mouseMoveHandler(event:MouseEvent):void {
var monImage:Image = Image(event.currentTarget) as Image;
var dragInitiator:Image = monImage;
var ds:DragSource = new DragSource();
ds.addData(dragInitiator, "img");
var imageProxy:Image = new Image();
imageProxy.source = event.currentTarget.source;
imageProxy.height=200;
imageProxy.width=200;
DragManager.doDrag(dragInitiator, ds, event, imageProxy,0,0,0.5,true);
}
private function dragEnterHandler(event:DragEvent):void {
if (event.dragSource.hasFormat("img")){
//si une image est déjà présente dans le container, on sort de la fonction
if (BorderContainer(event.currentTarget).contains(image0)
|| BorderContainer(event.currentTarget).contains(image1)
|| BorderContainer(event.currentTarget).contains(image2) ){
return;
}
//sinon on autorise le laché de l'image
DragManager.acceptDragDrop(BorderContainer(event.currentTarget));
}
}
private function dragDropHandler(event:DragEvent):void {
BorderContainer(event.currentTarget).addElement(Image(event.dragInitiator));
Image(event.dragInitiator).x = 0;
Image(event.dragInitiator).y = 0;
} |
Dans mon mxml, j'ai des images dans des borderContainers et des bordersContainers vides qui reçoivent les images. Je voudrais copier l'image au lieu de la déplacer mais je n'y arrive pas.
J'ai ajouté dans la fonction mouseMoveHandler ;
BorderContainer(Image(event.currentTarget).parent.parent.parent).addElement(Image(event.currentTarget));
mais l'image n'est pas copié pour autant, elle revient seulement à sa place d'origine...
Merci d'avance
Partager