• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

pike

PHP to Flash

18 mensagens neste tópico

Bem é basico mas não consegui descobrir como fazer  :wallbash: eu quero ter um php quer recebe em random infos da bd exemplo imagens nome marca, e queria que o flash recebesse essa info toda para depois a poder animar fazendo como que um banner que vai mostrando varios productos e os respectivos precos, alguem me pode ajudar e que do que li na net nada me ajudou...HELP  :bye2:

Cumprimentos  ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ia agora abrir um tópico que estou mais ou menos com o mesmo problema que tu. Para passares parâmetros de php para flash é preciso flashVars (que são variáveis que se definem no html)

O meu problema é o seguinte:

        <object codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="400" height="325">
          <param name="movie" value="dynGallery.swf">
          <param name="quality" value="high">
          <param name="FlashVars" value="id['4677dde7619de','4677ded38b059','4677df6fda509','4677df302c94d','4677e00959161']">
          <embed src="dynGallery.swf" width="400" height="325" quality="high" flashvars="id['4677dde7619de','4677ded38b059','4677df6fda509','4677df302c94d','4677e00959161']" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash"></embed>
        </object>

Para testar se estava tudo a funcionar pus uma textbox que mostra o valor do array id, que por sinal não adquire qualquer valor. Possívelmente é um erro de sintaxe, mas se pudessem ajudar agradecia.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bem não é bem a mesma coisa eu quero que o meu swf me mostre os conteúdos que vem de um php nada mais.... :wallbash:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

o exemplo que eu pus foi em html, mas nas flashVars  podes por os valores de uma consulta sql, que é o que vou fazer quando resolver este erro.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

o exemplo que eu pus foi em html, mas nas flashVars  podes por os valores de uma consulta sql, que é o que vou fazer quando resolver este erro.

okay okay soz ;) sou n00b total nisto tive apenas iniciação ao AS e agora estou me aventurando a mais mas preciso disto visto que é trabalho...

cumprimentos

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ia agora abrir um tópico que estou mais ou menos com o mesmo problema que tu. Para passares parâmetros de php para flash é preciso flashVars (que são variáveis que se definem no html)

O meu problema é o seguinte:

<object codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="400" height="325">
          <param name="movie" value="dynGallery.swf">
          <param name="quality" value="high">
          <param name="FlashVars" value="id['4677dde7619de','4677ded38b059','4677df6fda509','4677df302c94d','4677e00959161']">
          <embed src="dynGallery.swf" width="400" height="325" quality="high" flashvars="id['4677dde7619de','4677ded38b059','4677df6fda509','4677df302c94d','4677e00959161']" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash"></embed>
        </object>

Para testar se estava tudo a funcionar pus uma textbox que mostra o valor do array id, que por sinal não adquire qualquer valor. Possívelmente é um erro de sintaxe, mas se pudessem ajudar agradecia.

Não podes passar array através de flashvars, a informação passa serializada (string).

<param name="FlashVars" value="valor1=blablabla&valor2=yadayada">

Mas esta forma não é de todo a aconselhável para embeber um swf em html.

Usa um solução do tipo  SWFObject, UFO, etc.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já resolvi o problema em vez de:

flashvars="id['4677dde7619de','4677ded38b059','4677df6fda509','4677df302c94d','4677e00959161']

pus:

 flashvars="id=4677dde7619de,4677ded38b059,4677df6fda509,4677df302c94d,4677e00959161"

e depois no flash fiz o split da string por virgulas e guardei num array. Pode haver uma maneira para importar logo flashVars arrays  não consegui com o material que tinha, mas assim já funciona bem.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
e depois no flash fiz o split da string por virgulas e guardei num array. Pode haver uma maneira para importar logo flashVars arrays  não consegui com o material que tinha, mas assim já funciona bem.

Se quiseres passar informação deserializada para dentro do Flash tens de optar por Flash Remoting, ou uma solução do género, e uma gateway consoante a linguagem server-side (e.g. AMFPHP)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Olá! Ainda bem que chegaste a concluir o que pretendias.

Eu ainda nao me aventurei a juntar php sql e actionscript apesar de perceber um pouquinho de ambos...E olha fiquei curioso :P Podem-me então explicar por favor isto das flashvars? Os ids são as chaves primárias de cada tabela da tua bd? ou são outros campos?

e no que resulta esta linha? em que passas o swf c os ids na flashvars?

<embed src="dynGallery.swf" width="400" height="325" quality="high" flashvars="id['4677dde7619de','4677ded38b059','4677df6fda509','4677df302c94d','4677e00959161']"

...

Fiquem bem :P Abraço

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Quanto utilizas as flashvars nos parâmetros estás a "dizer" ao plugin(flash player) para disponibilizar essas variáveis na "timeline" do swf quando este carregar.

Não são muitas as situações em que utilizar o parâmetro flashvars te traz uma real vantagem, mas sim aquelas em que queres executar um operação logo no arranque baseado num factor externo.

Um video player com sistema de referrals.

Tens um script php que gera o html assim como as tags para embeber o swf e passas o id do flv no url: http://meusite.pt/videoplayer.php?vid=df6Hjk

o script php vai gerar a linha: <param name="FlashVars" value="vid=df6Hjk">

Quando o swf carregar vai ter no seu interior a variável vid com o valor df6Hjk e pode usar essa variável no url do server-side script que lhe devolve um flv/streaming.

Uma barra de navegação em flash dentro de uma página de HTML

Quando queres que a navegação sinalize a página em que está.

Ao mudar de página/ refresh o flash player vai recarregar o swf começando sempre do principio. Mas se passares uma variável que lhe diga em que "localização" está contornas esse problema.

Se utilizares por exemplo AJAX em que não precisa de recarregar toda a página para actualizar o conteúdo, esta solução para o problema anterior já ñ serve. Ai entra por exemplo a ExternalInterface em que podes comunicar entre o flash e HTML através de javascript.

Eu ainda nao me aventurei a juntar php sql e actionscript apesar de perceber um pouquinho de ambos...E olha fiquei curioso

Existem maneiras mais práticas e eficiente carregar/enviar informação para uma BD, só tens de escolher a que melhor se adequa ao que queres.

Assim por alto:

XML

Crias um script php (p.exemplo) lê a base de dados e retorna um xml formatado. Para o flash é como se tivesse a carregar um xml directamente.

myXML.load("lerBd.php?producto=Tvs&marca=Sony");

LoadVars

Por exemplo um formulário de login, precisas de receber info depois da info enviada ter sido processada.

Envia o user e pasword para o php, este verifica na bd se o login é válido e faz echo do status da operação. No flash recebes a variável status e actuas consoante o valor recebido.

Flash Remoting (acho que ainda ñ estao disponíveis os components para AS3)

Como expliquei no meu post anterior esta é uma solução muito mais robusta para comunicar com o server-side do teu site/aplicação.

Os dados são convertidos automáticamente para data types nativos do AS e vice-versa, é um formato binário (AMF) logo ocupada menos espaço e torna mais rápida a comunicação ao contrário dos anteriores em que a informação é passada como texto.

Espero ter ajudado a dar uma ideia das ferramentas disponíveis, agora é procurar mais info relativa a cada e postar dúvidas sempre que necessário.  :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Obrigado yarcub ;) ainda não tinha visto estes posts...

Quando tiver oportunidade vou experimentar estas situações. Abraço

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ola pessoal eu estava a fazer a pregunta noutro post (swf to php to swf) mas vou faze-lo aqui tambem.

cera que posso ler o url e as suas variaveis com o flash tipo o php

url = localhost/viewer.php?var1=1&var2=2&var3=3

e ter no flash

trace(var1+"&"+var2"&"+var3); // resultado obvio "123"

eu estou a tentar com php e flashvars mas n tou a conseguir :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Exemplo

No Flash tenho 4 caixas de texto dinâmicas com instance names txt1, txt2, txt3, txt4.

1º frame:

//Atribuo as variáveis recebidas por flashvars às respectivas caixas de texto.
txt1.text = var1;
txt2.text = var2;
txt3.text = var3;
txt4.text = var4;

No php apenas tenho de percorrer o array $_GET e fazer o output das tags correctamente formatadas:

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" 
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="550" 
height="400" id="flashvars" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="allowFullScreen" value="false" />
<param name="movie" value="flashvars.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#cccccc" />
<?	
	$n = sizeOf($_GET);
	$i=0;
	echo '<param name="FlashVars" value="';
	foreach ($_GET as $k => $v) {
		$i++; 
		echo $k.'='.$v;
		if($i<$n) echo '&';
	}
	echo '" />';
?>
<embed src="flashvars.swf" 
quality="high" bgcolor="#cccccc" width="550" height="400"
name="flashvars" 
align="middle" allowScriptAccess="sameDomain" 
allowFullScreen="false" type="application/x-shockwave-flash" 
pluginspage="http://www.macromedia.com/go/getflashplayer" 
<?	$i=0;
	echo 'FlashVars="';
	foreach ($_GET as $k => $v) {
		$i++; 
		echo $k.'='.$v;
		if($i<$n) echo '&';
	}
	echo '"';
?>/>
</object>

Uso: http://localhost/flashvars.php?var1=Ola&var2=Mundo

É aconselhável embeber o swf no html através de javascript, SWFObject por exemplo, apenas tens de fazer o echo de acordo com a implementação que usares.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

brigado yarcub pelo codigo mas nao consigo fazelo trabalhar deve me faltar algo. mas tentei com SWFobjet e esta a resustar mas naop com eu quero. porque nao consigo fazer um echo e ja agora o que querem diser com id (soteste) em

<script type="text/javascript">

var so = new SWFObject("viewer.swf", "sotester", "100%", "100%", "8", "#FFffff");

so.addVariable("flashVarText", "<? echo "oi" ?>");

so.addParam("scale", "noscale");

so.write("flashcontent");

</script>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
(...) ja agora o que querem diser com id (soteste) (...)

Isso é o ID que as tags OBJECT e EMBED vão ter.

(...) porque nao consigo fazer um echo (...)

Falta-te ai na tag "php", tenta assim:

<script type="text/javascript">
      var so = new SWFObject("viewer.swf", "sotester", "100%", "100%", "8", "#FFffff");
      so.addVariable("flashVarText", "<?php echo "oi"; ?>");
      so.addParam("scale", "noscale");
      so.write("flashcontent");
</script>

Não sei se reparaste na documentação, mas o swfobject permite "ler" parâmetros do url(podes usar simples html).

The SWFObject script also comes with an extra function which allows you to pull variable values from the url string. An example is you have a url that looks like this: http://www.example.com/page.html?variable1=value1&variable2=value2. Using the function getQueryParamValue() you can easily pull these values from the url and then pass them into your Flash movie. Here is an example, we'll assume that the url looks like the above example:

<script type="text/javascript">

  var so = new SWFObject("movie.swf", "mymovie", "400", "200", "8", "#336699");

  so.addVariable("variable1", getQueryParamValue("variable1"));

  so.addVariable("variable2", getQueryParamValue("variable2"));

  so.write("flashcontent");

</script>

The getQueryParamValue() function also supports reading variables from the location.hash, as used sometimes when deep linking into your Flash applications. For an example of how deep linking to your Flash movies using the location.hash variable, check out this demo of Slideshow Pro, which uses the SWFObject embed.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora