Jump to content

flash + html + php ... importar pagina .php para o flah


watt
 Share

Recommended Posts

então a dificuldade é?... lá esta tudo explicado (sem eles saberem).

1º usas php para gerar a lista xml que precisas.

2º importas os dados para o flash usando o fich xml.

é como fazer uma galeria de imagens dinamica mas com produtos, nada de mais, tenho por aqui algures um tut de como faze-lo, faz uma pesquisa

O que não tem solução, solucionado esta...

Link to comment
Share on other sites

O problema é ler o XML no flash? Ou arquitectar o do sistema carrinho de compras?

Em AS3 é muito simples ler e aceder ao conteúdo de um xml agora que tem suporte nativo com E4X.

Utilizando o exemplo da wiki:

<sales vendor="John">
    <item type="peas" price="4" quantity="6"/>
    <item type="carrot" price="3" quantity="10"/>
    <item type="chips" price="5" quantity="3"/>
  </sales>;

AS3:

var loader:URLLoader = new URLLoader();

loader.addEventListener(Event.COMPLETE, completeHandler);
loader.load(new URLRequest(http://odominio.pt/buscaDados.php));

function completeHandler(evt:Event):void
{
      var info:XML = XML(evt.target.data);
      //retorna um XMLList contendo o valor do atributo "quantity" 
      //para os elementos cujo tipo seja "carrot"
      trace(info.item.(@type == "carrot").@quantity.toXMLString()); //Outuput: 10

}

+info -> http://www.sephiroth.it/tutorials/flashPHP/E4X/

Link to comment
Share on other sites

Para os elementos da lista crias um movieclip com o layout que queres; fundo, caixa de texto. Na library indicas uma classe para o movieclip. Esse vai ser o elemento base que vais adicionar a um container (Sprite/MovieClip) quando percorres os dados vindos do XML. O scroll vai ser feito sobre esse container.

A classe do elemento base pode ser algo do género:

package
{
import flash.display.DisplayObject;
import flash.display.Loader;
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.net.URLRequest;
import flash.text.TextField;
import flash.events.Event;

public class ListItem extends MovieClip
{
	private var _legenda:TextField;
	private var _imagem:DisplayObject;
	//Instância que vai carregar a imagem cujo url é dado ao elemento
	private var _imageLoader:Loader;

	public function ListItem()
	{
		initUI();
		//Adicionar a função que vai ser chamada quando a imagem carregar
		_imageLoader.addEventListener(Event.COMPLETE, completeHandler);
	}

	//Métodos visíveis do exterior
	public function dados(url:String, label:String):void
	{
		//Define o texto que aparece na caixa de texto
		_legenda.text = label;
		//Faz o pedido da imagem
		_imageLoader.load(new URLRequest(url));
	}

	//Métodos internos do elemento
	private function completeHandler(evt:Event):void
	{
		//Faz o cast do conteúdo carregado para um datatype (tem que pertencer a ele)
		//que possa ser adicionado à displaylist do elemento
		var imagem:DisplayObject = evt.target.content as DisplayObject;
		addChild(imagem);
		//Posiciona a imagem
		posicionaImagem(40, 40);
	}

	private function posicionaImagem(x:int, y:int):void
	{
		_imagem.x = x;
		_imagem.y = y;
	}
}
}

Assim para adicionares elementos basta:

var elemento:ListItem = new ListItem();
elemento.dados("imagens/01.jpg", "Logo P@P");
umContainer.addChild(elemento);

Obviamente convém teres uma referncia do elemento anterior para o colocar este  a seguir ao anterior.

Para evitar este trabalho "por fora" podias criar uma classe para o container que internamente "faria" esta gestão por ti, depende se está + ou - à vontade com conceitos POO e eventualmente o eventos.

Quanto ao scrollbar podes ver esta série de tutoriais no gotoAndLearn() em como criar um.

->Parte1

->Parte2

Estes tutoriais fazem uma abordagem de POO por isso podes aproveitar alguns conceitos para o que falei antes.

Espero que seja isto que procuras.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.