Ir para conteúdo

POWERED BY:

Arquivado

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

Raytwo

[Resolvido]loadMovie está desativando os componentes do formul&#2

Recommended Posts

Opa galera, tudo bem?

Depois de um certo sofrimento, finalmente achei um formulário que funcionasse...

Até aí tudo bem, fiz ele em um swf e no swf principal, fiz um loadMovie pra esse formulário.

Mas o que acontece? Ele desabilita os componentes... não consigo escrever nada nos textField e o texo nos botões desaparece...

Por que isso acontece?

 

O estranho é que se eu abrir ele no navegador ex:www.site.com/formulário.swf ele funciona e manda o email certo.

 

aqui esta o codigo do formulario.

 

//tecla tab. Por esse comando você controla a ordem de onde irá o cursor ao se clicar na tecla TAB;
nome.text.tabIndex = 0;
cidade.text.tabIndex = 1;
email.text.tabIndex = 2;
mensagem.text.tabIndex = 3;
//ativa o curso no campo nome assim que essa tela for carregada;
Selection.setFocus("nome");
//limpar formulario. Função que limpa o formulário depois que o email foi enviado;
function limpar() {
	nome.text = "";
	cidade.text = "";
	estado.text = "selecione";
	email.text = "";
	mensagem.text = "";
}
//enviar email
function envia() {
	//Verifica se o campo "nome" está vazio, se estiver, aparece a mensagem senão ele verifica o proximo campo.
	//o mesmo acontece com o campo "email" e "mensagem".
	if (nome.text == null || nome.text == "") {
		statusMensagem.text = "Por favor, insira seu nome.";
	// a unica diferença no campo email é que além dele verificar se está vazio, ele também verifica se o conteúdo digitado possui "@" e "."
	} else if (email.text == "" || email.text == null || email.text.indexOf("@", 0) == -1 || email.text.indexOf(".", 0) == -1) {
		statusMensagem.text = "Por favor, insira um e-mail válido.";
	} else if (mensagem.text == null || mensagem.text == "") {
		statusMensagem.text = "Por favor, insira sua mensagem.";
	} else {
		//ainda falaremos muito sobre a classe LoadVars, é ela que junta tudo e manda para o php.
		var envia:LoadVars = new LoadVars();
		envia.nome = nome.text;
		envia.cidade = cidade.text;
		envia.estado = estado.text;
		envia.email = email.text;
		envia.mensagem = mensagem.text;
		//confere se o email foi enviado
		envia.onLoad = function() {
			if (this.enviou == true) {				
				//limpar o formulario depois que o email foi enviado.
				limpar();
				statusMensagem.text = "Mensagem enviada com sucesso!";
			} else {
				statusMensagem.text = "A mensagem não pode ser enviada, tente mais tarde!";
			}
		};
		//todos os paremetros para o arquivo  php externo.
		envia.sendAndLoad("formulario.php",envia,"POST");
	}
}
////////////////////////////////
//ao clicar no botão, chama a função enviar
enviarBt.onRelease = function() {
	envia();
};
//ao clicar no botão, chama a função limpar
limparBt.onRelease = function() {
	limpar();
};

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado Eder

 

adicionei o codigo na 1ª linha do flash, agora o que acontece. o mouse troca de imagem (texto) e o combobox abre mas fica em branco, so que nao consigo escrever nos campos.

 

Detalhe: o combobox carrega exatamente os campos de espaço que coloquei nele.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ae Jefferson como que dou Embed ?

 

desculpa a demora pra responder...

 

abs

 

so atualizando os links para download

 

index

 

formulario

 

desculpa a demora pra arrumar os links

 

abs

 

estou utilizando assim mas continua o problema q desativa o formulario

 

this._lockroot = true;
    _root.window.loadMovie("fotos/galeria.swf");
//tecla tab. Por esse comando você controla a ordem de onde irá o cursor ao se clicar na tecla TAB;
nome.text.tabIndex = 0;
cidade.text.tabIndex = 1;
email.text.tabIndex = 2;
mensagem.text.tabIndex = 3;
//ativa o curso no campo nome assim que essa tela for carregada;
Selection.setFocus("nome");
//limpar formulario. Função que limpa o formulário depois que o email foi enviado;
function limpar() {
	nome.text = "";
	cidade.text = "";
	estado.text = "selecione";
	email.text = "";
	mensagem.text = "";
}
//enviar email
function envia() {
	//Verifica se o campo "nome" está vazio, se estiver, aparece a mensagem senão ele verifica o proximo campo.
	//o mesmo acontece com o campo "email" e "mensagem".
	if (nome.text == null || nome.text == "") {
		statusMensagem.text = "Por favor, insira seu nome.";
	// a unica diferença no campo email é que além dele verificar se está vazio, ele também verifica se o conteúdo digitado possui "@" e "."
	} else if (email.text == "" || email.text == null || email.text.indexOf("@", 0) == -1 || email.text.indexOf(".", 0) == -1) {
		statusMensagem.text = "Por favor, insira um e-mail válido.";
	} else if (mensagem.text == null || mensagem.text == "") {
		statusMensagem.text = "Por favor, insira sua mensagem.";
	} else {
		//ainda falaremos muito sobre a classe LoadVars, é ela que junta tudo e manda para o php.
		var envia:LoadVars = new LoadVars();
		envia.nome = nome.text;
		envia.cidade = cidade.text;
		envia.estado = estado.text;
		envia.email = email.text;
		envia.mensagem = mensagem.text;
		//confere se o email foi enviado
		envia.onLoad = function() {
			if (this.enviou == true) {				
				//limpar o formulario depois que o email foi enviado.
				limpar();
				statusMensagem.text = "Mensagem enviada com sucesso!";
			} else {
				statusMensagem.text = "A mensagem não pode ser enviada, tente mais tarde!";
			}
		};
		//todos os paremetros para o arquivo  php externo.
		envia.sendAndLoad("formulario.php",envia,"POST");
	}
}
////////////////////////////////
//ao clicar no botão, chama a função enviar
enviarBt.onRelease = function() {
	envia();
};
//ao clicar no botão, chama a função limpar
limparBt.onRelease = function() {
	limpar();
};

index do teste

 

sera que nao tem outro geito de carregar um swf externo ?

 

porque o formulario nao ativa de geito nenhum.

 

obrigado =)

Compartilhar este post


Link para o post
Compartilhar em outros sites

1 - O formulário se encontra no mesmo lugar que a action dele?

2 - Quando você ta carregando o formulário você ta colocando ele como root?

 

você ta fazendo por acaso:

btnContato = function()
 alvo.loadMovie("form.swf");
}

E dentro desse form.swf é que se encontra o código que você disponibilizou?

 

Porque se esta seguindo os passos que a galera disse n tem motivos para n funcionar.

 

Campos de texto soh precisam de embed quando estão com mascaras caso contrario eles aparecem normalmente sem problema algum.

Inclusive componentes etc, desde que tudo esteja na biblioteca do swf chamado... n tem motivos para n aparecer.

 

Se não esta conseguindo... segue uma dica que eh sempre valida, crie um arquivo separado do que você ja esta fazendo e refaça tudo, crie novamente o formulario e um outro swf que vai chamar esse formulario... e ai teste para ver se os dois estão se comunicando, uma vez ajustado isso ai você parte para o proximo passo que eh juntar o que n tava funcionando com o que funciona.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

1 - O formulário se encontra no mesmo lugar que a action dele?

Sim. O formulário é um MC com os campos dentro dele

 

Imagem Postada

 

2 - Quando você ta carregando o formulário você ta colocando ele como root?

eu testei ele tando assim:

this._lockroot = true;
    _root.window.loadMovie("formulario.swf");

quanto assim:

this._lockroot = true;
    _root.window.loadMovie("index.swf");

 

você ta fazendo por acaso:

btnContato = function()
 alvo.loadMovie("form.swf");
}

 

não estou fazendo assim

on (release) {
	loadMovie("formulario.swf", "alvo");
}

E dentro desse form.swf é que se encontra o código que você disponibilizou?

so teve uma alteração na linha 2 - _root.window.loadMovie("fotos/galeria.swf"); para "formulario.swf" ou "index.swf" testei com os dois

 

o que acontece é que eu peguei esse formulario pronto, so fiz o botão chamando ele...

 

...entao a unica ideia que tive pra funcionar, era de mandar ele abrir em um html separado dai ele funciona...

 

mas mesmo assim vou continuar fazendo testes, qualquer coisa se conseguir eu aviso =D

 

obrigado Berseck e a todos

 

abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu baixei meu form

 

fiz um novo arquivo e fiz alvo.loadMovie('form.swf');

 

E tudo funcionou perfeitamente... então crieo que pode ser algum problema com esse form que você escolheu ai.

 

Quando chegar em casa baixo os exemplos que você deu e testo... e explico direitinho se funcionou e como fiz para fazer funcionar... caso eu consiga claro.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

consegui fazer colocando assim no botao ...

 

on (release) {
form.loadMovie("formulario.swf"); //sendo o form o mc do formulario//

//####### Aqui crio e abro clip dinâmicamente ########//
var mc:MovieClip = _root.createEmptyMovieClip("mc", -1);
mc.loadMovie("formulario.swf");
mc._x = 166;//posição em x do mc filme,
mc._y = 100;//posição em y do mc filme,
}

\o/

 

haha catei um tuto la do seu blog =D e acrescentei o X / Y pra determinar onde ele aparece

 

Abraços, Obrigado a todos...

 

vou disponibilizar por algum tempo o .fla caso alguem esteja com o mesmo problema

 

Clique aqui para baixar o formulario

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa que bom que conseguiu...

 

Eu fiz o seu form tbm funcionar...

Da maneira como falei a cima

 

1 - crio um MC dinamico

2 - carrego nesse mc o formulario

3 - todas as actions referentes a esse formulario foram colocadas no formulario e nao no root

 

Ai funcionou bunitinho :)

 

Abraços

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.