Ir para conteúdo

POWERED BY:

Arquivado

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

GustavoMZ

[Resolvido] Não consigo passar uma variável php para o flash

Recommended Posts

Preciso de uma força para perceber onde está o erro, é o seguinte:

 

Meu objetivo é passar uma variável PHP por FlashVars para um swf, estou usando o flash 8 com AS2.

 

Dessa forma da certo:

<param name="FlashVars" value="&videos/video1.flv&" />

<embed src="videos.swf" FlashVars="&videos/video1.flv&"

 

Mas preciso passar dinâmicamente com PHP

 

$caminho=videos/video1.flv;

 

<param name="FlashVars" value="&video=<?=$caminho?>&" />

<embed src="videos.swf" FlashVars="&video=<?=$caminho?>&"

 

Quando lá no flash executo um trace para ver se pegou a variável ele mostra o seguinte: <?=$caminho?>

 

Como fazer para que o flash pegue o conteúdo da variável PHP?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seja bem-vindo ao Fórum GustavoMZ. Caso ainda não tenha lido as Regras do Fórum, clique aqui para conhecê-las.

 

Poste o HTML que é gerado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pela força pessoal!

 

Atualizei a página e peguei o código fonte gerado:

 

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" 
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,
0,29,0" width="400" height="300">
<param name="movie" value="videos.swf" />
<param name="quality" value="high"><param name="SCALE" value="noborder" />
<param name="wmode" value="transparent" />
<param name="FlashVars"     value="&video=videos/video1.flv&" />
<embed src="videos.swf" FlashVars="&video=videos/video1.flv&"
width="400" height="300" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" 
type="application/x-shockwave-flash" 
scale="noborder" wmode="transparent" /></embed>
</object>

Para mim parece que está gerando o código normalmente... que mistério...

 

O php está rodando local no easyphp, já tentei com echo também e não deu certo...

 

Bom, se o html está sendo gerado corretamente não deve ser problema com o PHP.

Mas quando dou um trace para ver se passou corretamente ele mostra isso: <?=$caminho?>

Que coisa louca!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas o TRACE não aparece no Browser. Onde você está recuperando o resultado do TRACE?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou recuperando o resultado do trace dentro do próprio flash com control+enter.

 

O código AS é o seguinte:

 

meu_player2.scaleMode = StageScaleMode.NO_SCALE;
var carrega:LoadVars = new LoadVars();
carrega.load("videos.php");
carrega.onLoad = function(success:Boolean) {
	if (success) {
		trace(carrega.video);
		//seu código
		caminho = carrega.video;
		meu_player2.contentPath = caminho;
	} else {
		trace("Falha ao carregar os dados");
	}
};

Compartilhar este post


Link para o post
Compartilhar em outros sites

Usando FlashVars, basta você fazer assim no inicio da Action

trace(video);

 

Poste o resultado.

 

Obs. da forma que está fazendo parece que não está "compilando" o arquivo.php no momento da leitura. Talvez se você colocar o endereço completo funcione: carrega.load("http://localhost/blabla.../videos.php");

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hargon, adicionei o trace da forma que você falou assim: trace(video);

E retornou: undefined

 

A mensagem de erro completa:

 

undefined

 

Error opening URL "file:///C|/Arquivos%20de%20programas/EasyPHP1%2D8/www/Sites/Vanderlei/<?=$caminho?>"

 

Colocando o caminho completo:

carrega.load("http://127.0.0.1/Sites/Vanderlei/videos.php");

 

Com o caminho completo retornou o seguinte erro:

 

undefined

undefined

null url sent to VideoPlayer.load

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que meu problema não tem nada a ver com php, pois passando a variável desta forma...

 

<param name="FlashVars" value="&videos/video1.flv&" />

<embed src="videos.swf" FlashVars="&videos/video1.flv&"

 

... o video carrega apenas dando control+enter no flash, mas na página php o video não carrega.

Já enviei os arquivos para um servidor remoto para testar e continuou a mesma coisa.

As actions estão na camada superior e o FLVPlayBack está na camada inferior e ambos estão no primeiro frame.

Talvez seja algo relacionado as configurações de publicação...

Ou talvez seja a forma de receber essas variáveis...

Ou então talvez atualizando para o CS3 funcione...

Aguardarei algumas sugestões do pessoal aqui do forúm, se não der certo vou tentar com o CS3.

É uma rotina relativamente simples de se fazer, mas aguma coisa está dando errado, dessa vez to apanhando feio do flash! rsrsrsrs! flash 10 a 0!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Yaaahoooooo!!!!! consegui!!! o erro estava na forma de receber as variáveis!!!

 

estava assim:

carrega.load("videos.php");

carrega.onLoad = function(){

meu_player2.contentPath =this.video;

};

 

E agora assim:

var url = _level0.video;

meu_player2.contentPath = url;

 

Pessoal muito obrigado pela ajuda!

 

Mas ainda gostaria que alguém por favor me explicasse porque não funciona do primeiro jeito e funciona do segundo, acho importante entender a lógica.

 

Abraço a todos!!!

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.