Lord_RDR 0 Denunciar post Postado Setembro 1, 2010 Bom dia pessoal, Mias uma vez estou recorrendo ao forum afim de pedir encarecidamente a ajuda de vocês. Estou desenvolvendo uma aplicação onde: - Ao clicar(evento mouse_down), no item flor, encontrado no menu, é criado através do operador new uma nova instancia desse item dentro do mc vaso (vaso.addChild(flor)), esta instancia ativa automaticamente o startDrag/stopDrag. - Após soltar esta flor, posso clicar e arrasta-la quantas vezes forem necessárias. Porém, quando clico mais uma vez no item flor do menu, para criar uma segunda instancia, a mesma recebe as mesmas propriedades da anterior. Só que, os eventos de drag só funcioname para a ultima flor. Realizei alguns testes de trace tentando achar o problema, mas ele me retorna q eu clico na instancia certa, porem ele da o drag na errada. Segue código: function mouseDownHandler (ev:MouseEvent):void { var str:String = ev.currentTarget.name; var str2:String = str.substr(1,1); var ref:Number = Number(str2); var nome_classe:String; //trace("Nome do Objeto :" + str); // Vasos if (menu.currentFrame==2) { if (item1_mc!=null) { container.removeChild (item1_mc); // caso o vaso seja trocado, resetar a lista; lista_array = new Array(); //trace ("Limpando lista..."); } switch (ref) { case 1 : item1_mc = new Vaso1(); break; case 2 : item1_mc = new Vaso2(); break; case 3 : item1_mc = new Vaso3(); break; case 4 : item1_mc = new Vaso4(); break; case 5 : item1_mc = new Vaso5(); break; case 6 : item1_mc = new Vaso6(); break; case 7 : item1_mc = new Vaso7(); break; default : //trace ("Nenhum vaso selecionado!"); } //trace ("Vaso adicionado!"); container.addChild (item1_mc); item1_mc.x = mouseX-50; item1_mc.y = mouseY+50; ultimo_obj = item1_mc; ultimo_obj.startDrag (); stage.addEventListener (MouseEvent.MOUSE_UP, mouseUpHandler); // adicionando o elemento na lista de checagem lista_array.push (item1_mc); // trace ("Qtde. de itens na lista: " + lista_array.length); } // Flores if (menu.currentFrame==3) { //trace("Referencia: " + ref); switch (ref) { case 1 : item2_mc = new Flor1(); break; case 2 : item2_mc = new Flor2(); break; case 3 : item2_mc = new Flor3(); break; case 4 : item2_mc = new Flor4(); break; case 5 : item2_mc = new Flor5(); break; case 6 : item2_mc = new Flor6(); break; case 7 : item2_mc = new Flor7(); break; case 8 : item2_mc = new Flor8(); break; default : //trace ("Nenhuma flor selecionada!"); } //trace ("Flor adicionada!"); // NÃO FAZ NADA if (item1_mc !=null) { setMouseEvent (item1_mc, false); } item1_mc.addChild (item2_mc); item2_mc.x = item1_mc.mouseX-10; item2_mc.y = item1_mc.mouseY-20; ultimo_obj = item2_mc; //trace("Ultimo Objeto :" + ultimo_obj); ultimo_obj.startDrag (); stage.addEventListener (MouseEvent.MOUSE_UP, mouseUpHandler); // adicionando o elemento na lista de checagem lista_array.push (item2_mc); // trace ("Qtde. de itens na lista: " + lista_array.length); } } function mouseUpHandler (ev:MouseEvent):void { ev.currentTarget.removeEventListener (MouseEvent.MOUSE_UP, mouseUpHandler); if (ultimo_obj == null) { return; } else { ultimo_obj.stopDrag (); // definindo limites para o obj checkLimits (ultimo_obj); // ativando colorPicker manager (true); // setando as funções de drag and drop novamente; setMouseEvent (ultimo_obj, true); //trace("ULTIMO OBJ :" + ultimo_obj); } } Agradeço desde já quem puder me ajudar! Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Setembro 1, 2010 Você tem que criar um NOVO object para cada vez que fizer o click... Ou seja você tem que ao clicar para criar dar um NEW Object e usar esse object como referencia Se você não fizer isso ele pega os parametros do anterior... Assim como Loaders... MovieClips etc.. Abraços Compartilhar este post Link para o post Compartilhar em outros sites
Lord_RDR 0 Denunciar post Postado Setembro 1, 2010 Você tem que criar um NOVO object para cada vez que fizer o click... Ou seja você tem que ao clicar para criar dar um NEW Object e usar esse object como referencia Se você não fizer isso ele pega os parametros do anterior... Assim como Loaders... MovieClips etc.. Abraços Desculpe Berseck, mas não entendi. Talvez eu não expliquei direito acima, quando eu adiciono duas flores por exemplo, ele tem que permitir que o drag;drop funcione para as duas e não só para o último. Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Setembro 1, 2010 Então foi isso que eu falei Você tem que criar um novo objeto flor para cada nova flor e colocar todos os listeners nessa nova flor... se não não vai funcionar mesmo. Abraços Compartilhar este post Link para o post Compartilhar em outros sites