Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/11/2010, 23:18
Jacowaco4
 
Fecha de Ingreso: septiembre-2009
Mensajes: 7
Antigüedad: 14 años, 7 meses
Puntos: 0
Drag and Drop with loaded images AS3

Hola,
Empecé hace muy poco pero tengo un problema que estoy seguro que cualquier persona entrenada sabrá resolver.
Sé como aplicar un "drag and drop" a un MovieClip llamándolo por su nombre de instancia, pero tengo una galería de 24 imagenes creadas por Loader. Y cuando trato de aplicar el "drag and drop" a las imagenes cargadas por loader, no puedo. Se me ocurrieron 2 soluciones:
1. Convertir las imagenes cargadas por loader a MovieClips o colocarlas adentro de MovieClips.
2. Hacer un "drag and drop" que pueda ser aplicado a las imágenes cargadas por loader.

Traté mucho, llevo días intentando hacerlo pero no lo logré, estoy desesperado. Espero me puedan ayudar.

Aquí va la parte relevante de mi código:

(mcCadenaMontaje es un MovieClip en el que están contenidas las imagenes cargadas por loader)

Código AS3:
Ver original
  1. import clases.Drag;
  2.  
  3. function cargar_hueso(q,r,s){
  4.     var hueso_loader:Loader = new Loader();
  5.     var hueso_direccion:URLRequest = new URLRequest("img/huesos/hueso"+q+".png");
  6.     hueso_loader.load(hueso_direccion);
  7.     mcCadenaMontaje.addChild (hueso_loader);
  8.     hueso_loader.x = r;
  9.     hueso_loader.y = s;
  10.     hueso_loader.name = "hueso"+q;
  11.  
  12.     trace(hueso_loader.name);
  13. }
  14.  
  15. for (var i:int = 1; i <= 24; i++) {
  16.     cargar_hueso(i,i*30-20,-20);
  17. }
  18.  
  19. var drag:Drag = new Drag(mcCadenaMontaje.hueso1);
  20. /*Esto es lo que no está funcionando, pero si coloco un MovieClip cualquiera adentro del paréntesis del Drag, funciona.*/

La class Drag:

Código AS3:
Ver original
  1. package clases {
  2. import flash.display.*
  3. import flash.events.*;
  4. //------------------------------------
  5. public class Drag extends MovieClip{
  6. public var clip:MovieClip = new MovieClip();
  7. //------------------------------------
  8. public function Drag(queClip){
  9. clip = queClip
  10. clip.addEventListener(MouseEvent.MOUSE_DOWN, draguear);
  11. clip.addEventListener(MouseEvent.MOUSE_UP, soltar);
  12. }
  13. //------------------------------------
  14. private function draguear(e:Event):void{
  15. clip.startDrag()
  16. }
  17. //------------------------------------
  18. private function soltar(e:Event):void{
  19. clip.stopDrag();
  20. }
  21. }
  22. }

Muchas gracias, espero alguna ayuda :)