Rariel 0 Denunciar post Postado Março 6, 2010 Pessoal quero saber se exite alguam função que faça com que um movie clip fique grudado a outro movieclip quando ele se tocarem, tipo eu tenhoum quadrado que é um movie clip e um reta, eu quero que a ponta da reta grude em qualquer regiao do quadrado e fique grudada quando eu arrastar eles atraves de um função que possuo. so quero saber se tal função exit, ja que o ac3 possui tantas como startDrag, stopDrag dentre outras. Compartilhar este post Link para o post Compartilhar em outros sites
Michel Araújo 0 Denunciar post Postado Março 7, 2010 Não há como 'grudá-los'. Porem você pode adiciona-los a um mesmo MC. Ou até mesmo adicionar a reta ao outro MC, aí eles ficariam como se estivessem grudados. Cuidado só com as coordenadas globais x locais. Compartilhar este post Link para o post Compartilhar em outros sites
Rariel 0 Denunciar post Postado Março 7, 2010 Há tá mas eu to add os objetos no palco dinamicamente ou seja importantando eles da biblioteca e eles sao inseridos no palco atraves de um botao, você pode me dar alguam ideia de como fazer esse agrupamento dentro de outro movieclip, so pra você entender eu preciso que a ponta de uma retra se grude a um objeto seja ele um quadrado, ou triangulo. porém te ser ser as duas potas da reta. Bem acho melhoer te explicar o que eu estou fazendo, eu quero criar um fluxograma para algoritmos, onde cada botao inseri um objeto isso ta beleza, mas sabe as retas q ligam os objetos do fuxograma preciso que a pota da reta se grude nas bordas desses objetos de modo que quando eu arraste arraste tudo, detalhe essa reta resolvi fazer um movie clip, onde usarei algumas funçoes para aumentala e fiminuila ou rotaciona-la. mas seria interessante quando eu inserisse essa reta que um movieclip ele se aagrupar quando tocasse a borda de algum objeto vou postar o codigo pq eu nao tenho nem ideia como fazer isso se você poder me dar uam ajuda. e por falar em codigo muito bom seus tutoriais eu assisti e aprendi muito sobre classes ta de parabens. segue o codigo. //Objetos e variaveis Globais var cont:int = 1; var x1:int = 1; var x2:int = 0; var ListaId:Array = new Array(); var Pont = new mcPonto(); var ListaInicioFim:Array = new Array(); var bor = new mcBorracha(); var MsgBox = new mcMsgBox(); //Função para checar validação de messagem. function Valida(e:MouseEvent):void { removeChild(DisplayObject(MsgBox)); } //Função remove o objeto do Palco quando a borracha e acionada no botao btnBorracha function removeObjetos(e:MouseEvent):void { var objParaRemover:MovieClip = e.currentTarget as MovieClip; for (var ob in ListaId) { if (e.currentTarget == ListaId[ob]) { ListaId[ob]; } } removeChild(DisplayObject(e.currentTarget)); ob = 0; for (var ob1 in ListaInicioFim) { if (e.currentTarget == ListaInicioFim[ob1]) { cont-=1; } } if (objParaRemover is mcInicioFim) { if (objParaRemover.lbVariavel.text == 'Inicio') { x1 = 1; } else { x1 = 2; } } ob1 = 0; } //Função para pegar Objetos e arrastar no palco atraves do botão brnSelecao function Selecao(e1:MouseEvent):void { addChild(bor); removeChild(bor); for (var ob in ListaId) { if (e1.currentTarget == ListaId[ob]) { ListaId.slice(ob ,1); } } stage.addEventListener(MouseEvent.MOUSE_UP,Solta); e1.currentTarget.startDrag(); e1.currentTarget.buttonMode = true; for (var x:int = 0; x < ListaId.length; x++) { ListaId[x].removeEventListener(MouseEvent.MOUSE_OVER, Selecao); } } //Função para desenhar as linhas de ligação entre os objetos inseridos function DesenhaLinha(evt:MouseEvent):void { var ln:mcLinha = new mcLinha(); ListaId.push(ln); ln.x = 750; ln.y = 150; addChild(DisplayObject(ln)); } btnReta.addEventListener(MouseEvent.CLICK, DesenhaLinha); /*Função para soltar o objeto no palco, qualquer objeto pois o comando stage tem a propriedade de controlar eventos relativos que estão sobre o palco*/ function Solta(evt:Event):void { stopDrag(); } /*Desfaz a selecao dos objetos arrastaveis quando clicado no brnPonteiro ou seja tudo que era arrastavel ate o momento no palco deve fica fixo.*/ function Ponteiro(ev:Event):void { addChild(Pont); removeChild(Pont); addChild(bor); removeChild(bor); for (var x:int = 0; x < ListaId.length; x++) { ListaId[x].removeEventListener(MouseEvent.MOUSE_OVER, removeObjetos); } stage.removeEventListener(MouseEvent.MOUSE_UP,DesenhaLinha); stage.addEventListener(MouseEvent.MOUSE_UP,Solta); } btnPonteiro.addEventListener(MouseEvent.CLICK, Ponteiro); /*Função para percorrer a matriz e passar os elementos para a função que deve remove-los.*/ function CorreMatrizApaga(e:MouseEvent):void { for (var x:int = 0; x < ListaId.length; x++) { ListaId[x].addEventListener(MouseEvent.MOUSE_OVER, removeObjetos); } addChild(bor); bor.startDrag(true); stage.removeEventListener(MouseEvent.MOUSE_UP,Solta); } btnBorracha.addEventListener(MouseEvent.CLICK, CorreMatrizApaga); //Função para os objetos para a função selecao function CorreMatrizSelecao(e:MouseEvent):void { for (var x:int = 0; x < ListaId.length; x++) { ListaId[x].addEventListener(MouseEvent.MOUSE_OVER,Selecao); } } btnSelecao.addEventListener(MouseEvent.CLICK,CorreMatrizSelecao); //Função para criar novos objetos assim quer for clicado no botao btniniciofim, Inicio-Fim. function CriaInicioFim(evt:MouseEvent):void { var objiniciofim = new mcInicioFim(); ListaId.push(objiniciofim); if (cont > 2) { MsgBox.y = 300; MsgBox.x = 500; addChild(MsgBox); MsgBox.btnOk.addEventListener(MouseEvent.CLICK, Valida); } else { if (x1 == 1) { objiniciofim.lbVariavel.text = "Inicio"; x1 = 2; } else if (x1 == 2) { objiniciofim.lbVariavel.text = "Fim"; x1 = 1; } ListaInicioFim.push(objiniciofim); objiniciofim.x = 250; objiniciofim.y = 150; addChild(DisplayObject(objiniciofim)); cont+=1; } } btniniciofim.addEventListener(MouseEvent.CLICK, CriaInicioFim); //Função para criar novos objetos assim quer for clicado no botao btnEntrada, são as Variaveis. function CriaEntrada(evt:MouseEvent):void { var objentrada = new mcEntrada(); ListaId.push(objentrada); objentrada.x = 380; objentrada.y = 150; addChild(DisplayObject(objentrada)); } btnEntrada.addEventListener(MouseEvent.CLICK, CriaEntrada); //Função para criar novos objetos assim quer for clicado no botao btnEntrada, são as Condiçoes. function CriaCondicao(evt:MouseEvent):void { var objCondicao = new mcCondicao(); ListaId.push(objCondicao); objCondicao.x = 490; objCondicao.y = 150; addChild(DisplayObject(objCondicao)); } btnCondicao.addEventListener(MouseEvent.CLICK, CriaCondicao); //Função para criar novos objetos assim quer for clicado no botao btnProcesso, são os Processos. function CriaProcesso(evt:MouseEvent):void { var objProcesso = new mcProcesso(); ListaId.push(objProcesso); objProcesso.x = 640; objProcesso.y = 150; addChild(DisplayObject(objProcesso)); } btnProcesso.addEventListener(MouseEvent.CLICK, CriaProcesso); //Função para criar novos objetos assim quer for clicado no botao btnSaida, são as saidas. function CriaSaida(evt:MouseEvent):void { var objSaida = new mcSaida(); ListaId.push(objSaida); objSaida.x = 750; objSaida.y = 150; addChild(DisplayObject(objSaida)); } btnSaida.addEventListener(MouseEvent.CLICK, CriaSaida); Compartilhar este post Link para o post Compartilhar em outros sites