Ir para conteúdo

Arquivado

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

Rariel

Seleção ActionScript 3.0

Recommended Posts

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

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

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

×

Informação importante

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