Ir para conteúdo

POWERED BY:

Arquivado

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

Diego Guimarães

Variavel da URL em PHP controlar o Flash

Recommended Posts

Da pra fazer, você pega o get do php e manda pro flash, isso poderia ser por flashvars no html ou coloca como extensão do nome do arquivo, por exemplo:

 

arquivo.swf?cena=<? echo $_GET['cena'] ."&frame=".$_GET['frame']?>

 

isso vai passar as variaveis pra dentro do flash, porem tome cuidado com duas coisas, primeiro que ele vai passar os numeros como string, dai você usa o parseInt pra passar esse valor de string pra inteiro, dai você vai ter que fazer um array de quantos frames você tem em cada cena, fazendo mais ou menos assim:

 

var cenas:Array = new Array(10, 20, 30);

 

Considerando que a primeira cena tem 10 frames, a segunda tem 20 frames e a terceira tem 30 frames.Dai o primeiro indice que e´da primeira cena vai começar com 0, então se você quiser que ele va pra cena um, você vai usar o 0 no php no retorno de cena, 1 pra segunda cena e assim por diante.

Dai o flash vai contar os numeros de frames das cenas anteriores com um for, você coloca assim antes do preloader:

 

frames = 0;

for(i = 0; i <= parseInt(_root.cena); i++){

frames += cenas;

}

frames += parseInt(_root.frame);

_root.gotoAndStop(frames);

 

tenta ai e qquer dúvida você posta ai novamente.

 

abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tá dando qze tudo certinho.. brigado ae pela ajuda.. + preciso de outra ajuda.. ehehheEstou utilizando assim:URL: produtos.php?linha=1Flash: linhas.swf?linha=<?php echo $_GET['linha']; ?>+ ta tendo um problema, qndo a variável linha é = 3 ou >= 5 ela responde como NaNqual será o problema?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ele da o erro NaN como "not a number" quand você tenta somar uma string com um number, quando você manda um numero por loadVars, mesmo sendo numeros ele vai entender como string, então se você somar por exemplo 10 + 20 que veio do php ele da 1020, pos´ele concatena, agora se você tentar multiplicar, dividir ou algo do tipo, não tem como matematicamente ele fazer isso, ai ele retorna NaN, agora tem que ir testando as variaveis pra ver qual que ela ta dando como string, se você usar no flash o trace, você consegue isso, tenta ir testando no flash tipo:

 

trace(typeof(sua_variavel));

 

ai você vai vendo o que ele ta retornando como string, como number, ou se qusier posta as actions que você ta usando ai que vamos arrumando, só pra te dizer, o que eu postei ai não foi testado, fiz tudo de cabeça, então se aparecer algum erro, a gente vai resolvendo.

 

abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não sei se você me entendeu mto bem.. é o seguinte, eu nao estou utilizando o action q você me passou, eu apenas utilizei sua ajuda e adaptei..Se por exemplo eu colocar no palco um Dynamic Text com o vari de 'linha' qndo a var 'linha' da URL é 1, 2, 4 ou 5 o DynamicText imprimi o valor certo. + qndo é 3 ou algum número maior igual a 6 ele imprime NaN. entendeu???

Compartilhar este post


Link para o post
Compartilhar em outros sites

entendi e estou achando estranho, porisso falei pra você ir testando com o trace, pra ver onde que ele ta dando erro pra retornar Nan, dai porisso pedi pra colocar o código adaptado pra poder te ajudar, porque não tem como achar o erro sem ver o código que está usando, posta ai que eu dou uma olhada :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ele só te da um saida no flash do que você precisar, é somente para desenvolvimento mesmo, com ele você pode ir testando como o gettype() do php que você deve conhecer, as vezes quando algo ta dando errado da um print de um gettype pra saber o valor de uma variavel, só que isso te imprime no código, no flash com o trace você não precisa colocar o retorno no documento do flash, ele te retorna numa janela separada tipo:

 

trace(2 + 2);

 

te retorna 4

 

agora pelo o que você me falou, tenta veo o código fonte do site, porque pode ser que quando ele cloca o 3, ele pode estar colocando alguma sujeira no meio que quando o flash manda dar um parseInt, ele não consegue, é como usar, tipo parseInt(maria de 3) isso pra ele vai retornar NaN entendeu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu ainda nao colokei action, só coloquei um Dynamic Text pra conferir se ta pegando a variavel do jeito certo. O PHP ta ai:

 

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="765" height="54">			  <param name="movie" value="linhas.swf?linha=<?php echo $_GET['linha']; ?>" />			  <param name="quality" value="high" />			  <embed src="linhas.swf?linha=<?php echo $_GET['linha']; ?>" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="765" height="54"></embed>		  </object>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá!

 

Esse código realmente funcionou comigo, mas gostaria de saber como eu poderia modificá-lo para que ele levasse em conta apenas as cenas, e não os frames.

Exemplo: URL: index.php?cena=2

 

Eu já tentei modificar aqui, mas sempre dá errado...

Agradeço desde já.

 

arquivo.swf?cena=<? echo $_GET['cena'] ."&frame=".$_GET['frame']?>

 

 

var cenas:Array = new Array(10, 20, 30);

 

 

frames = 0;

for(i = 0; i <= parseInt(_root.cena); i++){

frames += cenas;

}

frames += parseInt(_root.frame);

_root.gotoAndStop(frames);

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode tentar fazer pelo nome da cena, nomeie a sua cena 2 de cena2

 

 

ai no php:

 

 

arquivo.swf?cena=<? echo $_GET['cena']

e no flash:

 

_root.gotoAndStop(_root.cena);

 

[]´s

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.