quinta-feira, 28 de janeiro de 2010

Flash Slideshow feito em PHP lendo XML

Estive precisando recentemente de criar uma galeria de imagens que tivessem alguns recursos interessantespara um site de um fotografo

Logicamente eu não queria ter de editar a galeria toda vez que ele quisesse adicionar uma nova foto ou alterar a apresentação. Pensando em fazer uma ferramenta que possibilite que o fotografo venha a editar a apresentação do seu slideshow ,sem exigir conhecimentos computacionais, eu criei um componente que lendo um XML numa formatação específica, que ainda não tem um schema para descreve-la, venha a criar um SWF.

O resultado é uma ferramenta que converte esse XML:

<...slideshow>
<...slides>
<...slide time="70" >
<...image x="110" y="320" src="photo1.jpg" wait="0" stay="20" fadein="20" fadeout="20" />
<.../slide>
<...slide time="70" >
<...image x="310" y="320" src="photo5.jpg" wait="10" stay="20" fadein="20" fadeout="20" />
<.../slide>
<...slide time="100" >
<...image x="210" y="220" src="photo2.jpg" wait="0" stay="50" fadein="20" fadeout="30" />
<...image x="510" y="220" src="photo3.jpg" wait="10" stay="40" fadein="20" fadeout="30" />
<...image x="810" y="220" src="photo4.jpg" wait="20" stay="30" fadein="20" fadeout="30" />
<.../slide>
<...slide time="100" >
<...image x="210" y="220" src="photo2.jpg" wait="0" stay="20" fadein="20" fadeout="30" />
<...image x="510" y="220" src="photo2.jpg" wait="10" stay="20" fadein="20" fadeout="30" />
<...image x="810" y="220" src="photo2.jpg" wait="20" stay="20" fadein="20" fadeout="30" />
<...image x="1110" y="220" src="photo2.jpg" wait="30" stay="20" fadein="20" fadeout="30" />
<...image x="1410" y="220" src="photo2.jpg" wait="40" stay="20" fadein="20" fadeout="30" />
<.../slide>
<...slide time="160" >
<...image x="1000" y="220" src="photo2.jpg" wait="0" stay="80" fadein="40" 'fadeout="40"/>
<.../slide>
<.../slides> <.../slideshow>

Nessa apresentação:





O código fonte desse componente se encontra disponível no repositório do projeto assim como o fonte do exemplo.


O componente depende do componente CorujaTree que é uma classe para facilitar a manipulação de XMLs mas, com um pouco de esforço pode ser adaptado para funcionar de modo independente.

2 comentários:

cy83|250v137 disse...

vc tem um blog. o_0
que pelo jeito acabou de ressucitar...
vou linkar essa coisa.

Blaine disse...

A idéia é um blog com posts poucos mas com conteúdo legal. Não gosto de usar isso para ficar copiando e colando noticia alheia. Se quiser ver uma coisa mais contínua, veja o http://twitter.com/thiagomata