Rariel 0 Denunciar post Postado Fevereiro 20, 2010 Pessal to com um problema, é o seguinte estou fazendo um sistema tem muita coisa ja rodando, mas estou com um problema, eu fim um interface onde o usuario pode clicar em um icone, esse icone gera quanto filhos ele quiser no palco (inseri), crie um função onde o usuario pode arrastar esses objetos pelo palco a hora que ele quiser, o problema é o seguinte quando eu clico no botao de seleção eu posso arrastar esses icones para qualquer lugar e quando eu clico em qualquer do palco eu solto esse objeto, o problema é que mesmo depois de clicar em qualquer lugar do palco e voltar a passar o mouse sobre o icone ele continua arrastando e eu quero q ele seja arrastavel apenas quando o usuario clica no botao. segue abaixo o codigo se alguem poder ajudar //Objetos e variaveis Globais var obj:Object = this; var ListaId:Array = new Array(); var bor:mcBorracha = new mcBorracha(); //Função para soltar o objeto no palco function Solta(evt:MouseEvent):void { stopDrag(); } stage.addEventListener(MouseEvent.MOUSE_UP,Solta); // Função remove o objeto do Palco function removeObjeto(e:MouseEvent):void { for (var ob in ListaId) { if (e.currentTarget == ListaId[ob]) { ListaId.splice(ob, 1); } } removeChild(DisplayObject(e.currentTarget)); } //Função para pegar Objetos function PegaObjeto(e:MouseEvent):void { for (var ob in ListaId) { if (e.currentTarget == ListaId[ob]) { ListaId.splice(ob, 1); } } e.currentTarget.startDrag(true); } //Cria um novo objeto retirando o original da Biblioteca function CriaObjetos(evt:MouseEvent):void { var objeto:iniciofim = new iniciofim(); ListaId.push(objeto); addChild(objeto); objeto.startDrag(true); //Chama a função de seleção de objetos function SelecaoObjeto(evt:MouseEvent):void { objeto.addEventListener(MouseEvent.MOUSE_OVER,PegaObjeto); } brBarra.btnmao.addEventListener(MouseEvent.CLICK, SelecaoObjeto); //Pega borracha para deletar o objeto function PegaBorracha(evt:MouseEvent):void { addChild(bor); bor.startDrag(true); objeto.addEventListener(MouseEvent.MOUSE_OUT, removeObjeto); } brBarra.btnBorracha.addEventListener(MouseEvent.CLICK, PegaBorracha); bor.addEventListener(MouseEvent.CLICK, PegaBorracha); } brBarra.btniniciofim.addEventListener(MouseEvent.CLICK,CriaObjetos); /*Função que cria a borracha no palco sem a necessidade de clicar nos botões que criam os objetos no palco*/ function PegaBorracha(evt:MouseEvent):void { addChild(bor); bor.startDrag(true); bor.addEventListener(MouseEvent.CLICK, PegaBorracha); } brBarra.btnBorracha.addEventListener(MouseEvent.CLICK, PegaBorracha); Compartilhar este post Link para o post Compartilhar em outros sites
Matheus Brito 12 Denunciar post Postado Fevereiro 20, 2010 Pessal to com um problema, é o seguinte estou fazendo um sistema tem muita coisa ja rodando, mas estou com um problema, eu fim um interface onde o usuario pode clicar em um icone, esse icone gera quanto filhos ele quiser no palco (inseri), crie um função onde o usuario pode arrastar esses objetos pelo palco a hora que ele quiser, o problema é o seguinte quando eu clico no botao de seleção eu posso arrastar esses icones para qualquer lugar e quando eu clico em qualquer do palco eu solto esse objeto, o problema é que mesmo depois de clicar em qualquer lugar do palco e voltar a passar o mouse sobre o icone ele continua arrastando e eu quero q ele seja arrastavel apenas quando o usuario clica no botao. segue abaixo o codigo se alguem poder ajudar //Objetos e variaveis Globais var obj:Object = this; var ListaId:Array = new Array(); var bor:mcBorracha = new mcBorracha(); //Função para soltar o objeto no palco function Solta(evt:MouseEvent):void { stopDrag(); } stage.addEventListener(MouseEvent.MOUSE_UP,Solta); // Função remove o objeto do Palco function removeObjeto(e:MouseEvent):void { for (var ob in ListaId) { if (e.currentTarget == ListaId[ob]) { ListaId.splice(ob, 1); } } removeChild(DisplayObject(e.currentTarget)); } //Função para pegar Objetos function PegaObjeto(e:MouseEvent):void { for (var ob in ListaId) { if (e.currentTarget == ListaId[ob]) { ListaId.splice(ob, 1); } } e.currentTarget.startDrag(true); } //Cria um novo objeto retirando o original da Biblioteca function CriaObjetos(evt:MouseEvent):void { var objeto:iniciofim = new iniciofim(); ListaId.push(objeto); addChild(objeto); objeto.startDrag(true); //Chama a função de seleção de objetos function SelecaoObjeto(evt:MouseEvent):void { objeto.addEventListener(MouseEvent.MOUSE_OVER,PegaObjeto); } brBarra.btnmao.addEventListener(MouseEvent.CLICK, SelecaoObjeto); //Pega borracha para deletar o objeto function PegaBorracha(evt:MouseEvent):void { addChild(bor); bor.startDrag(true); objeto.addEventListener(MouseEvent.MOUSE_OUT, removeObjeto); } brBarra.btnBorracha.addEventListener(MouseEvent.CLICK, PegaBorracha); bor.addEventListener(MouseEvent.CLICK, PegaBorracha); } brBarra.btniniciofim.addEventListener(MouseEvent.CLICK,CriaObjetos); /*Função que cria a borracha no palco sem a necessidade de clicar nos botões que criam os objetos no palco*/ function PegaBorracha(evt:MouseEvent):void { addChild(bor); bor.startDrag(true); bor.addEventListener(MouseEvent.CLICK, PegaBorracha); } brBarra.btnBorracha.addEventListener(MouseEvent.CLICK, PegaBorracha); Rariel já te pedi pra postar na área correta, temos um sub-forum especializado em actionscript 3.0, então se sua dúvida é com as 3 use esse sub-forum. Movido: Flash e ActonScript http://forum.imasters.com.br/public/style_emoticons/default/seta.gif ActionScript 3.0 Compartilhar este post Link para o post Compartilhar em outros sites
DanielGianni 0 Denunciar post Postado Fevereiro 20, 2010 Simples! tira a parte do seu código que realiza esse comportamento! //Chama a função de seleção de objetos function SelecaoObjeto(evt:MouseEvent):void { objeto.addEventListener(MouseEvent.MOUSE_OVER,PegaObjeto); } Compartilhar este post Link para o post Compartilhar em outros sites