Ir para conteúdo

POWERED BY:

Arquivado

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

Pitta

Botões do SWF externo não funcionam em AS3

Recommended Posts

Olá galera fmz?

 

Então estou com um problema, antes quando eu criava algum site em AS2 deixava cada página do site como SWF externo, e os SWF's que tinham algum botão ou algo do tipo não funcionavam, e para que isso funcionasse eu utilizava o seguinte código: this._lockroot = true; Ai tudo funcionava muito bem, uma beleza...

 

Agora vem o problema: estou fazendo um site em AS3 e está com o mesmo problema onde as ações e/ou os botões dos SWF's externos não funcionam, mas eu não posso utilizar o mesmo código que eu usava em AS2: this._lockroot = true;. Bom eu gostaria de saber o que, que substituiu esse código em AS3, pois estou precisando muito disso...

 

Desde já agradeço a todos, abraços e fiquem com DEUs...(",)(,")...

Compartilhar este post


Link para o post
Compartilhar em outros sites

o swf principal, que carrega os outros é feito em AS2??

 

pois se for, caso ele carregue um swf em AS3, ele não vai funcionar mesmo

 

se não for esse o caso, poste os codigo que você esta usando nos botões

 

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenho a mesma dúvida que você, com todos os arquivos em AS3.

 

Na página principal tenho botões que carregam arquivos externos.

 

A questão é que os arquivos externos também possuem botões.

 

No meu caso além de não funcionarem, ainda deformam o tamanho, mesmo quando o arquivo externo possui exatamente o mesmo tamanho do container onde é carregado.

 

Tenho na página principal botões com rollover, cada um carrega uma galeria externa que possui botões next/prev.

 

 

PS: não uso Array, já tentei adicionar o código dos arquivos externos na timeline principal, e adicionar "StageScaleMode.NO_SCALE".

 

Além disso, meu conhecimento ainda não alcança.

 

Uso este código nos botões para rolagem, e também para o carregamento do arquivo externo em exibição inicial.

 

btn_desce.addEventListener(MouseEvent.ROLL_OVER, desce);
btn_desce.addEventListener(MouseEvent.ROLL_OUT, desceRemove);

function desce(evento:MouseEvent):void{
	mc_quadrado.addEventListener(Event.ENTER_FRAME, desceFull);
}

function desceFull(evento:Event):void{
	mc_quadrado.nextFrame();
}

function desceRemove(evento:MouseEvent):void{
	mc_quadrado.removeEventListener(Event.ENTER_FRAME, desceFull); 
}


btn_sobe.addEventListener(MouseEvent.ROLL_OVER, sobe);
btn_sobe.addEventListener(MouseEvent.ROLL_OUT, sobeRemove);

function sobe(evento:MouseEvent):void{
	mc_quadrado.addEventListener(Event.ENTER_FRAME, sobeFull);
}

function sobeFull(evento:Event):void{
	mc_quadrado.prevFrame();
}

function sobeRemove(evento:MouseEvent):void{
	mc_quadrado.removeEventListener(Event.ENTER_FRAME, sobeFull); 
}

var carregar:Loader=new Loader();

mc_exibe.addChild(carregar);
carregar.load(new URLRequest("anima_1.swf"));

mc_quadrado.anima.th_1.addEventListener(MouseEvent.CLICK, botao1);
function botao1(evento:MouseEvent):void{
carregar.load(new URLRequest("anima_1.swf"));
}

 

 

A galeria externa usa:

 

 

stop();

dir_btn.addEventListener(MouseEvent.CLICK, proximo);
esq_btn.addEventListener(MouseEvent.CLICK, anterior);

function proximo(me:MouseEvent):void
{
		stage.addEventListener(Event.ENTER_FRAME, onFramesNext);
}

function anterior(me:MouseEvent):void
{
	stage.addEventListener(Event.ENTER_FRAME, onFramesPrev);
}


function onFramesNext(e:Event):void
{
		nextFrame();
	
		if(currentFrame == 20)
	{
				
		stage.removeEventListener(Event.ENTER_FRAME, onFramesNext);
	}
	
	if(currentFrame == 40) 
	{
		stage.removeEventListener(Event.ENTER_FRAME, onFramesNext);
	}
	
	if(currentFrame == 60) 
	{
		stage.removeEventListener(Event.ENTER_FRAME, onFramesNext);
	}
	
}


function onFramesPrev(e:Event):void
{
	prevFrame();
	if(currentFrame == 40)
	{
				
		stage.removeEventListener(Event.ENTER_FRAME, onFramesPrev);
	}
	
	if(currentFrame == 20) 
	{
		stage.removeEventListener(Event.ENTER_FRAME, onFramesPrev);
	}
	
	if(currentFrame == 1) 
	{
		stage.removeEventListener(Event.ENTER_FRAME, onFramesPrev);
	}
}

 

 

PS: Eder, se você gostar, lhe mando de presente todos os meus CDs, Dual Disc e até um DVD da Dave Matthews Band (Central Park Concert). Também tenho um DVD do Peter Gabriel que é tudo de bom (Still Growing Up). Tô vendendo a minha alma pelo AS3, rsrsrs.

 

 

Não precisa responder, estou só delirando (aquarianos são doidos de berço)

 

 

Vou acompanhar o tópico do Pitta para aprender um pouco mais sobre o assunto.

 

 

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

o swf principal, que carrega os outros é feito em AS2??

 

pois se for, caso ele carregue um swf em AS3, ele não vai funcionar mesmo

 

se não for esse o caso, poste os codigo que você esta usando nos botões

 

 

[]´s

 

Então o código do SWF externo que possui os botões é esse:

 

for(var i:Number = 1; i <= 11; i++){
	
	this["btnInv"+i].addEventListener(MouseEvent.CLICK, onClick);
};


function onClick(evt:MouseEvent):void {
	
	switch(evt.currentTarget){
		
		case btnInv1:
			gotoAndStop(1);
		break;
		
		case btnInv2:
			gotoAndStop(2);
		break;
		
		case btnInv3:
			gotoAndStop(3);
		break;
		
		case btnInv4:
			gotoAndStop(4);
		break;
		
		case btnInv5:
			gotoAndStop(5);
		break;
		case btnInv6:
			gotoAndStop(6);
		break;
		
		case btnInv7:
			gotoAndStop(7);
		break;
		
		case btnInv8:
			gotoAndStop(8);
		break;
		
		case btnInv9:
			gotoAndStop(9);
		break;
		
		case btnInv10:
			gotoAndStop(10);
		break;
		
		case btnInv11:
			gotoAndStop(11);
		break;
	}
}

Funciona direitinho, só não funciona quando eu carrego no SWF principal, :=(... Se puder me ajudara eu agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Elektra

 

 

no seu caso, eu acho que o problema pode ser que você adicionou o addEventListener no objeto "stage"

 

quando um swf é carregado, a referencia dele ao stage muda, esse passa a ser o swf "pai", que o carregou

 

tente colocar "root" no lugar para ver(a referencia ao root continua, mesmo se o swf for carregado)

 

 

 

 

PS: não conhecia as bandas, gostei da the tower that ate people do Peter Gabriel,

valew a dica ;)

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Elektra

 

 

no seu caso, eu acho que o problema pode ser que você adicionou o addEventListener no objeto "stage"

 

quando um swf é carregado, a referencia dele ao stage muda, esse passa a ser o swf "pai", que o carregou

 

tente colocar "root" no lugar para ver(a referencia ao root continua, mesmo se o swf for carregado)

 

 

 

 

PS: não conhecia as bandas, gostei da the tower that ate people do Peter Gabriel,

valew a dica ;)

 

[]´s

 

 

Eder, não acredito, você existe mesmo? rsrsrs

 

É mais uma das minhas "inspirações", sem falar no usocapião do tópico alheio.

 

E você responde, uhhhhh >.< que legal!

 

 

Essa história da galeria foi por conta de um colega "nada esforçado" que tinha uns códigos bem cabeludos para tentar fazer funfar algo que nem ele mesmo sabia.

A metida aqui conseguiu fazer com códigos simples, que estavam ao meu alcance. O cliente não ia ter do que reclamar.

 

 

Foi através desta situação que me ofereceram auxílio para o form de email (AS3 + PHP), resolveu a questão da codificação, mas o detalhe que faltava para ficar perfeito, veio agora na virada do ano com o auxílio do Foxn ajustando as variáveis do AS3. Ficou bala.

 

Naturalmente tive outras idéias para as funcionalidades da galeria externa, mas o conhecimento no momento ainda não alcança, daí aproveitar os tópicos com relação ao assunto (na cara dura de sempre, pronta para levar pedradas na boa).

 

Vou estudar a sua orientação, sou osso duro de roer, sei que vou conseguir.

 

Foi legal conhecer um pouco de você, gostei. Peter Gabriel é da antiga, mas continua inquieto.

 

 

PS: editei trocentas vezes, mas você vai ler direitinho desta vez, rsrsrs!

 

 

Beijos no seu coração, obrigada mesmo.

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.