Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Rariel

como colar um reta a um movie clip

Recommended Posts

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.