Ir para conteúdo

POWERED BY:

Arquivado

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

JhonnyXD

[Resolvido] Problemas Movie Clip - MC

Recommended Posts

Olá pessoal.

Tenho um projeto onde o usuário digita os dados em um formulário e são enviados por e-mail usando uma linguagem externa no caso PHP.

Acontece q não estou conseguindo capturar as variaveis dos forms para enviar para o PHP, pois estão dentro de um Movie Clip.

Segue techo do código que pega as váriaveis

 

if (nomeOrigem eq "" or emailOrigem eq "" or  foneOrigem eq "" or cidadeOrigem eq "" or mensagem eq ""){
    stop();
      } else {
    loadVariablesNum("./uniformePersonalizadoSubmit2.php", 0, "POST");
   }

->As variaveis de cada campo do formulario são nomeOrigem, emailOrigem e assim por diante.

->o nome do Movie Clip onde está os Formulário é "mcImagem".

Obs: fora do Movie Clip funciona perfeitamente porém tenho q usar o formulário dentro do Movie Clip. Se quiserem mais detalhes me avisem.

 

Agradeço quem puder me ajudar ae.

Abraço http://forum.imasters.com.br/public/style_emoticons/default/pinch.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá pessoal.

Tenho um projeto onde o usuário digita os dados em um formulário e são enviados por e-mail usando uma linguagem externa no caso PHP.

Acontece q não estou conseguindo capturar as variaveis dos forms para enviar para o PHP, pois estão dentro de um Movie Clip.

Segue techo do código que pega as váriaveis

 

if (nomeOrigem eq "" or emailOrigem eq "" or  foneOrigem eq "" or cidadeOrigem eq "" or mensagem eq ""){
    stop();
      } else {
    loadVariablesNum("./uniformePersonalizadoSubmit2.php", 0, "POST");
   }

->As variaveis de cada campo do formulario são nomeOrigem, emailOrigem e assim por diante.

->o nome do Movie Clip onde está os Formulário é "mcImagem".

Obs: fora do Movie Clip funciona perfeitamente porém tenho q usar o formulário dentro do Movie Clip. Se quiserem mais detalhes me avisem.

 

Agradeço quem puder me ajudar ae.

Abraço http://forum.imasters.com.br/public/style_emoticons/default/pinch.gif

 

cara. tenta colocar o nome do movieclip antes, assim ó:

 

if (nomeOrigem.nomeOrigem eq "" or nomeOrigem.emailOrigem eq "" or  nomeOrigem.foneOrigem eq "" or nomeOrigem.cidadeOrigem eq "" or nomeOrigem.mensagem eq ""){
    stop();
      } else {
    loadVariablesNum("./uniformePersonalizadoSubmit2.php", 0, "POST");
   }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara vlw pela dica só que já tentei dessa forma tmb não deu certo

tentei usando esse comando também _ROOT nada.

Se tiver mais alguma sugestão será muito bem vinda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Utilize o código de LoadVars que é melhor que loadvariablesnum e você tem melhores tipos de acesso a isso.

 

Abraços

 

Ba amigão só que o problema ta ali naquele "IF" não to conseguindo resgata as variaveis que estão no formulário dentro do Movie Clip.

Se eu tirar o formulário de dentro deste Movie Clip funciona normalmente, só que não vou poder fazer isso, pois tem um esquema neste projeto.

Se quiser explico com mais detalhes.

 

Abração

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já tentou assim: if(_root.nomedoclip.valor eq "") ?

Ou variavel.text caso seja um campo de texto com instancia e não variavel

 

Mesma coisa serve pro loadVariablesNum você tem que colocar o target na frente dele da onde ele ta...

 

Para que ele faça isso... caso contrario vai dar erro

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

JhonnyXD, tente o seguinte:

 

Não declare tipos para as vars que estão pegando os input_text que estão dentro do mc...

Suponhamos que em seu mcImagem tem um input text de nome "input_nome" por exemplo, ao evento (clique de botao, ou algo assim) faça o seguinte

 


mcImagem.botao.onRelease = function(){
	nomeOrigem = mcImagem.input_nome.text;
	//.... o mesmo pros outros input text
	if(nomeOrigem != "" or ... ){ // no caso, se todos os campos são necessários, é melhor usar and entre as verificações
		loadVariablesNum("caminho/pro/php/sem/o/./", [_level do mc em relação ao _root], "POST");
	}else{
		stop();
	}
}

A não ser que você queira subir um nível acima do seu diretório atual (que no caso você usaria ../) não vejo necessidade de usar ./ se o seu swf estiver num nível superior ao do script php.

 

E altere o parâmetro level do método...os valores funcionam quando você deixa no palco pois o _root é level 0. Se seu mc com os inputs está dentro do palco somente, use level 1, se ele está dentro de outro mc, level 2, e assim sucessivamente

 

 

Espero ter ajudado.

abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

JhonnyXD, tente o seguinte:

 

Não declare tipos para as vars que estão pegando os input_text que estão dentro do mc...

Suponhamos que em seu mcImagem tem um input text de nome "input_nome" por exemplo, ao evento (clique de botao, ou algo assim) faça o seguinte

 


mcImagem.botao.onRelease = function(){
	nomeOrigem = mcImagem.input_nome.text;
	//.... o mesmo pros outros input text
	if(nomeOrigem != "" or ... ){ // no caso, se todos os campos são necessários, é melhor usar and entre as verificações
		loadVariablesNum("caminho/pro/php/sem/o/./", [_level do mc em relação ao _root], "POST");
	}else{
		stop();
	}
}

A não ser que você queira subir um nível acima do seu diretório atual (que no caso você usaria ../) não vejo necessidade de usar ./ se o seu swf estiver num nível superior ao do script php.

 

E altere o parâmetro level do método...os valores funcionam quando você deixa no palco pois o _root é level 0. Se seu mc com os inputs está dentro do palco somente, use level 1, se ele está dentro de outro mc, level 2, e assim sucessivamente

 

 

Espero ter ajudado.

abs

 

Brother tentei dessa forma e usei algumas dicas do amigo acima tmb e não tive sucesso.

Acabei fazendo da seguinte maneira:

//envia o e-mail de reforço do formulario
	nomeOrigem = _level0.mcImagem.nomeOrigem.text;
	emailOrigem = _level0.mcImagem.emailOrigem.text;
	foneOrigem = _level0.mcImagem.foneOrigem.text;
	cidadeOrigem = _level0.mcImagem.cidadeOrigem.text;
	mensagem = _level0.mcImagem.mensagem.text;
    if (nomeOrigem != "" and emailOrigem != "" and  foneOrigem  != "" and cidadeOrigem  != "" and mensagem  != ""){
		loadVariablesNum("uniformePersonalizadoSubmit2.php?r=", 1, "POST");
      } else {
      		stop();
   }
Tmb não deu certo.

Obrigado por tudo até o momento.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Essa AS tira uma PRINT do flash e envia por e-mail junto com os dados do formulário q não estou conseguindo fazer funcionar como eu cito no inicio do tópico.

Vou colocar a AS inteira talvez o pessoal consiga me ajudar melhor.

/*
---------------------------------------------------------------------------------------------------------------------------------
Salvar um MC através da classe MCE - MovieClip Exporter
A classe utiliza de um recurso ótimo do flash 8, a class BitmapData. E é através dela, que exportamos os pixels do MC para o PHP,
para que o mesmo possa salvar em um arquivo, JPEG ou PNG, dependendo do suporte a GD de seu servidor.
-------------------------------------------------------------------------------------------------------------------------------*/
var mcProgresso:MovieClip;
mcProgresso._visible = false;
//definindo imagem e setando o cache de bitmap...
var mcImagem:MovieClip;
mcImagem.cacheAsBitmap = true;
//so para poder modificar o mc...
for(var i in mcImagem){
	var mc = mcImagem[i];
	if(typeof mc == "movieclip"){
		mc.onPress = function():Void
		{
			this.startDrag(false);
			this.swapDepths(1000);
			this.onRelease = this.onReleaseOutside = function():Void
			{
				this.stopDrag();
			}
		}
	}
}
//Objeto para fazer o download da imagem, após o PHP gera-la...
var frBaixa:flash.net.FileReference = new flash.net.FileReference();
//criando obj LoadVar, que vai enviar a imagem ao PHP...
var lvImagem:LoadVars = new LoadVars();
lvImagem.onLoad = function(sucesso:Boolean):Void
{
	if(sucesso){
		trace("Orçamento enviado com sucesso. Obrigado.");
		tTrace.text += "Orçamento enviado com sucesso. Obrigado.";
		if(!frBaixa.download(lvImagem.file)){
			trace("");
			tTrace.text += "";			
		}
	} else {
		trace("No momento não foi possível enviar seu orçamemto. Por favor tente novamente mais tarde.");
		tTrace.text += "No momento não foi possível enviar seu orçamento. Por favor tente novamente mais tarde.";
	}
}
//criando o obj MCE...
var mceImagem:MCE = new MCE();
mceImagem.format = "jpg";
mceImagem.target = mcImagem;
//criando listener de eventos..
var objMCE:Object = new Object();
//evento de início da captura...
objMCE.onCaptureStart = function(mcAlvo:MovieClip, tempoInicio:Date):Void
{
	//tTrace.text = "";
	//trace("Enviando orçamento... em: " + mcAlvo);
	//tTrace.text += "Iniciando o envio: " + mcAlvo + chr(13);
	mcProgresso._visible = true;
}
//evento de progresso na captura, quanto mais pixels, mais vai tempo...
objMCE.onCaptureProgress = function(mcAlvo:MovieClip, progresso:Number):Void
{
	trace("Status: " + progresso + "%");
	mcProgresso.xBar._xscale = progresso;
}
//captura dos pixels do mc, em uma imagem, dispostos em uma string, tb informa a largura e altura, necessaria para criação da imagem...
objMCE.onCaptureEnd = function(mcAlvo:MovieClip, lvEnvia:LoadVars, tempoInicio:Date, tempoFinal:Date):Void
{
	//trace("Captura Finalizada... em: " + mcAlvo);
	//tTrace.text += "Captura Finalizada... em: " + mcAlvo + chr(13);
	//trace("Tempo Estimado: " + ((tempoFinal - tempoInicio)/1000));
	//tTrace.text += "Tempo Estimado: " + ((tempoFinal - tempoInicio)/1000).toString() + chr(13);
	
	//envia o primeiro e-mail com a printscreen da imagem e formulario
	lvEnvia.sendAndLoad("uniformePersonalizadoSubmit2.php?r=" + (new Date()).getSeconds(), lvImagem, "POST");
	//envia o e-mail de reforço do formulario
	nomeOrigem = _level0.mcImagem.nomeOrigem.text;
	emailOrigem = _level0.mcImagem.emailOrigem.text;
	foneOrigem = _level0.mcImagem.foneOrigem.text;
	cidadeOrigem = _level0.mcImagem.cidadeOrigem.text;
	mensagem = _level0.mcImagem.mensagem.text;
    if (nomeOrigem != "" and emailOrigem != "" and  foneOrigem  != "" and cidadeOrigem  != "" and mensagem  != ""){
		loadVariablesNum("uniformePersonalizadoSubmit2.php?r=", "POST");
      } else {
      		stop();
   }

	mcProgresso._visible = false;
}
//evento chamado no cancelamento da ação de exportação...
objMCE.onCaptureCancel = function(mcAlvo:MovieClip, tempoInicio:Date, tempoFinal:Date):Void
{
	trace("Cancelado... em: " + mcAlvo);
	tTrace.text += "Cancelado... em: " + mcAlvo + chr(13);
	mcProgresso._visible = false;
}
mceImagem.addListener(objMCE);
//
//definindo ação para o botao salvar...
btSalvar.onRelease = function():Void
{
	//o método export da class MCE, tem um argumento, que é o nome da imagem, junto com a pasta de destino
	mceImagem.export("Uniforme-Personalizado.jpg");
}
mcProgresso.btCancelar.onRelease = function():Void
{
	//o método cancel aborta a exportação...
	mceImagem.cancel();
}

Abração

Compartilhar este post


Link para o post
Compartilhar em outros sites

Essa AS tira uma PRINT do flash e envia por e-mail junto com os dados do formulário q não estou conseguindo fazer funcionar como eu cito no inicio do tópico.

Vou colocar a AS inteira talvez o pessoal consiga me ajudar melhor.

Lembro q a parte do PRINT funciona perfeitamente.

/*
---------------------------------------------------------------------------------------------------------------------------------
Salvar um MC através da classe MCE - MovieClip Exporter
A classe utiliza de um recurso ótimo do flash 8, a class BitmapData. E é através dela, que exportamos os pixels do MC para o PHP,
para que o mesmo possa salvar em um arquivo, JPEG ou PNG, dependendo do suporte a GD de seu servidor.
-------------------------------------------------------------------------------------------------------------------------------*/
var mcProgresso:MovieClip;
mcProgresso._visible = false;
//definindo imagem e setando o cache de bitmap...
var mcImagem:MovieClip;
mcImagem.cacheAsBitmap = true;
//so para poder modificar o mc...
for(var i in mcImagem){
	var mc = mcImagem[i];
	if(typeof mc == "movieclip"){
		mc.onPress = function():Void
		{
			this.startDrag(false);
			this.swapDepths(1000);
			this.onRelease = this.onReleaseOutside = function():Void
			{
				this.stopDrag();
			}
		}
	}
}
//Objeto para fazer o download da imagem, após o PHP gera-la...
var frBaixa:flash.net.FileReference = new flash.net.FileReference();
//criando obj LoadVar, que vai enviar a imagem ao PHP...
var lvImagem:LoadVars = new LoadVars();
lvImagem.onLoad = function(sucesso:Boolean):Void
{
	if(sucesso){
		trace("Orçamento enviado com sucesso. Obrigado.");
		tTrace.text += "Orçamento enviado com sucesso. Obrigado.";
		if(!frBaixa.download(lvImagem.file)){
			trace("");
			tTrace.text += "";			
		}
	} else {
		trace("No momento não foi possível enviar seu orçamemto. Por favor tente novamente mais tarde.");
		tTrace.text += "No momento não foi possível enviar seu orçamento. Por favor tente novamente mais tarde.";
	}
}
//criando o obj MCE...
var mceImagem:MCE = new MCE();
mceImagem.format = "jpg";
mceImagem.target = mcImagem;
//criando listener de eventos..
var objMCE:Object = new Object();
//evento de início da captura...
objMCE.onCaptureStart = function(mcAlvo:MovieClip, tempoInicio:Date):Void
{
	//tTrace.text = "";
	//trace("Enviando orçamento... em: " + mcAlvo);
	//tTrace.text += "Iniciando o envio: " + mcAlvo + chr(13);
	mcProgresso._visible = true;
}
//evento de progresso na captura, quanto mais pixels, mais vai tempo...
objMCE.onCaptureProgress = function(mcAlvo:MovieClip, progresso:Number):Void
{
	trace("Status: " + progresso + "%");
	mcProgresso.xBar._xscale = progresso;
}
//captura dos pixels do mc, em uma imagem, dispostos em uma string, tb informa a largura e altura, necessaria para criação da imagem...
objMCE.onCaptureEnd = function(mcAlvo:MovieClip, lvEnvia:LoadVars, tempoInicio:Date, tempoFinal:Date):Void
{
	//trace("Captura Finalizada... em: " + mcAlvo);
	//tTrace.text += "Captura Finalizada... em: " + mcAlvo + chr(13);
	//trace("Tempo Estimado: " + ((tempoFinal - tempoInicio)/1000));
	//tTrace.text += "Tempo Estimado: " + ((tempoFinal - tempoInicio)/1000).toString() + chr(13);
	
	//envia o primeiro e-mail com a printscreen da imagem e formulario
	lvEnvia.sendAndLoad("uniformePersonalizadoSubmit2.php?r=" + (new Date()).getSeconds(), lvImagem, "POST");
	//envia o e-mail de reforço do formulario
	nomeOrigem = _level0.mcImagem.nomeOrigem.text;
	emailOrigem = _level0.mcImagem.emailOrigem.text;
	foneOrigem = _level0.mcImagem.foneOrigem.text;
	cidadeOrigem = _level0.mcImagem.cidadeOrigem.text;
	mensagem = _level0.mcImagem.mensagem.text;
    if (nomeOrigem != "" and emailOrigem != "" and  foneOrigem  != "" and cidadeOrigem  != "" and mensagem  != ""){
		loadVariablesNum("uniformePersonalizadoSubmit2.php?r=", "POST");
      } else {
      		stop();
   }

	mcProgresso._visible = false;
}
//evento chamado no cancelamento da ação de exportação...
objMCE.onCaptureCancel = function(mcAlvo:MovieClip, tempoInicio:Date, tempoFinal:Date):Void
{
	trace("Cancelado... em: " + mcAlvo);
	tTrace.text += "Cancelado... em: " + mcAlvo + chr(13);
	mcProgresso._visible = false;
}
mceImagem.addListener(objMCE);
//
//definindo ação para o botao salvar...
btSalvar.onRelease = function():Void
{
	//o método export da class MCE, tem um argumento, que é o nome da imagem, junto com a pasta de destino
	mceImagem.export("Uniforme-Personalizado.jpg");
}
mcProgresso.btCancelar.onRelease = function():Void
{
	//o método cancel aborta a exportação...
	mceImagem.cancel();
}

Abração

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que o erro é aqui:

objMCE.onCaptureEnd = function(mcAlvo:MovieClip, lvEnvia:LoadVars, tempoInicio:Date, tempoFinal:Date):Void
{
        //trace("Captura Finalizada... em: " + mcAlvo);
        //tTrace.text += "Captura Finalizada... em: " + mcAlvo + chr(13);
        //trace("Tempo Estimado: " + ((tempoFinal - tempoInicio)/1000));
        //tTrace.text += "Tempo Estimado: " + ((tempoFinal - tempoInicio)/1000).toString() + chr(13);
        
        //envia o primeiro e-mail com a printscreen da imagem e formulario
        lvEnvia.sendAndLoad("uniformePersonalizadoSubmit2.php?r=" + (new Date()).getSeconds(), lvImagem, "POST");
        //envia o e-mail de reforço do formulario
        nomeOrigem = _level0.mcImagem.nomeOrigem.text;
        emailOrigem = _level0.mcImagem.emailOrigem.text;
        foneOrigem = _level0.mcImagem.foneOrigem.text;
        cidadeOrigem = _level0.mcImagem.cidadeOrigem.text;
        mensagem = _level0.mcImagem.mensagem.text;
    if (nomeOrigem != "" and emailOrigem != "" and  foneOrigem  != "" and cidadeOrigem  != "" and mensagem  != ""){
                loadVariablesNum("uniformePersonalizadoSubmit2.php?r=", "POST");
      } else {
                stop();
   }

        mcProgresso._visible = false;
}
Você faz duas chamadas de informação no mesmo lguar...

 

Tenta fazer tudo de uma feita só.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

A pergunta pode parecer idiota, mas:

Os campos input_text estão instanciados, né?

 

Supondo que sim, esqueça das vars que pegam os input e faz o seguinte aqui :

btSalvar.onRelease = function():Void  {
        //o método export da class MCE, tem um argumento, que é o nome da imagem, junto com a pasta de destino
        if (mcImagem.nome_do_campo_input.text == "" or mcImagem.nome_do_outro_campo.text == "") {
                // campos vazios não faz nada
        } else {
                mceImagem.export("Uniforme-Personalizado.jpg");
        }
};

///////
objMCE.onCaptureEnd = function(mcAlvo:MovieClip, lvEnvia:LoadVars, tempoInicio:Date, tempoFinal:Date):Void
{
        //trace("Captura Finalizada... em: " + mcAlvo);
        //tTrace.text += "Captura Finalizada... em: " + mcAlvo + chr(13);
        //trace("Tempo Estimado: " + ((tempoFinal - tempoInicio)/1000));
        //tTrace.text += "Tempo Estimado: " + ((tempoFinal - tempoInicio)/1000).toString() + chr(13);
        
        //envia o primeiro e-mail com a printscreen da imagem e formulario
        lvEnvia.sendAndLoad("uniformePersonalizadoSubmit2.php?r=" + (new Date()).getSeconds(), lvImagem, "POST");
        //envia o e-mail de reforço do formulario
        nomeOrigem = _level0.mcImagem.nomeOrigem.text;
        emailOrigem = _level0.mcImagem.emailOrigem.text;
        foneOrigem = _level0.mcImagem.foneOrigem.text;
        cidadeOrigem = _level0.mcImagem.cidadeOrigem.text;
        mensagem = _level0.mcImagem.mensagem.text;
/////////// tire isso daqui
    if (nomeOrigem != "" and emailOrigem != "" and  foneOrigem  != "" and cidadeOrigem  != "" and mensagem  != ""){
                loadVariablesNum("uniformePersonalizadoSubmit2.php?r=", "POST");
      } else {
                stop();
   }
////////////

        mcProgresso._visible = false;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

O correto seria assim:

objMCE.onCaptureEnd = function(mcAlvo:MovieClip, lvEnvia:LoadVars, tempoInicio:Date, tempoFinal:Date):Void
{
        lvEnvia.nomeOrigem = _level0.mcImagem.nomeOrigem.text;
        lvEnvia.emailOrigem = _level0.mcImagem.emailOrigem.text;
        lvEnvia.foneOrigem = _level0.mcImagem.foneOrigem.text;
        lvEnvia.cidadeOrigem = _level0.mcImagem.cidadeOrigem.text;
        lvEnvia.mensagem = _level0.mcImagem.mensagem.text;
    if (nomeOrigem != "" and emailOrigem != "" and  foneOrigem  != "" and cidadeOrigem  != "" and mensagem  != ""){
        lvEnvia.sendAndLoad("uniformePersonalizadoSubmit2.php?r=" + (new Date()).getSeconds(), lvImagem, "POST");
      } else {
                stop();
   }

        mcProgresso._visible = false;
}

Dessa maneira você vai conseguir enviar todas as informações de uma feita só.

E assim não faz duas chamadas na mesma função para outro lugar dando um break.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

O correto seria assim:

objMCE.onCaptureEnd = function(mcAlvo:MovieClip, lvEnvia:LoadVars, tempoInicio:Date, tempoFinal:Date):Void
{
        lvEnvia.nomeOrigem = _level0.mcImagem.nomeOrigem.text;
        lvEnvia.emailOrigem = _level0.mcImagem.emailOrigem.text;
        lvEnvia.foneOrigem = _level0.mcImagem.foneOrigem.text;
        lvEnvia.cidadeOrigem = _level0.mcImagem.cidadeOrigem.text;
        lvEnvia.mensagem = _level0.mcImagem.mensagem.text;
    if (nomeOrigem != "" and emailOrigem != "" and  foneOrigem  != "" and cidadeOrigem  != "" and mensagem  != ""){
        lvEnvia.sendAndLoad("uniformePersonalizadoSubmit2.php?r=" + (new Date()).getSeconds(), lvImagem, "POST");
      } else {
                stop();
   }

        mcProgresso._visible = false;
}

Dessa maneira você vai conseguir enviar todas as informações de uma feita só.

E assim não faz duas chamadas na mesma função para outro lugar dando um break.

 

Abraços

 

AEEEEEEEEEEEEEEEEEEEEEEE

Excelente!!!!!

Muito obrigado meu brother funcionou perfeitamente!!!

Gostaria de agradecer aos demais ae q tmb me ajudaram muito obrigado mesmo.

Segue link de como ficou espero q curtão

http://www.spenassatto.com.br/uniformePersonalizado.php

 

Quando clicado em enviar ele envia a Print do boneco e suas respectivas cores juntamente com o formulário.

 

 

Abração a todos vlw 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.