XML e addChild

fevereiro 18, 2008 at 2:49 pm 4 comentários

Quem não enfrenta alguns problemas com AS3 e suas mudanças? Até se ambientalizar novamente vai algum tempinho, então pra ajudar a galera que ta começando agora vou postar um exemplinho simples de como carregar xml e ir adicionando no palco.

1. addChild é o nosso antigo attachMovie, por tanto crie um movieclip com um pequeno polígono. Vá até sua library e no classPath do linkage ponha “Polygon” sem as aspas. Agora crie outro Movie Clip só que vazio e no Linkage ponha “container”. Para fechar crie um campo de texto dinâmico para receber o valor do nosso xml e instance-o de cliquei_txt.

Ok, nosso palco está pronto.

Crie uma nova camada e insira o seguinte código.

// Importando a classe Tweener
import caurina.transitions.Tweener;

// Declarando variaveis
var final:Number = new Number;
var cont:container = new container;
var xml:XML;
var url:URLRequest = new URLRequest("meuXml.xml");
var carrega:URLLoader = new URLLoader();

// Quando carregado chamar a função "carregado"
carrega.addEventListener("complete", carregado);
carrega.load(url);

// Adicionando MovieClip Pai
this.addChild(cont);
cont.y = 100;
cont.x = (stage.stageWidth - cont.width)/2;

// Função quando o xml é carregado
function carregado(e:Event):void{

// Carregando dados do xml
xml = new XML(carrega.data);

// Definindo a variavel final como tamanho de nós do xml
final = xml.item.length();

for(var i:Number = 0; i<=final-1; i++){

// Adicionando MovieClips Filho e dando sua posição no randômica no palco
var objeto:Polygon = new Polygon();
objeto["id"] = i;
cont.addChild(objeto);
Tweener.addTween(objeto, {x:Math.random()*550-cont.x, time:1, transition:"easeInOutExpo"});
Tweener.addTween(objeto, {y:Math.random()*400-cont.y, time:1, transition:"easeInOutExpo"});

// Evento de clique no movie clip filho
objeto.addEventListener(MouseEvent.MOUSE_DOWN, ChamaObj);
}
}

// Função do clique
function ChamaObj(event:MouseEvent):void{

//Dando o valor "nome" do nó ao campo de texto
cliquei_txt.text = xml.item[event.currentTarget["id"]].@nome;

//Sorteando posição no palco
Tweener.addTween(event.currentTarget, {x:Math.random()*550-cont.x, time:1, transition:"easeInOutExpo"});
Tweener.addTween(event.currentTarget, {y:Math.random()*400-cont.y, time:1, transition:"easeInOutExpo"});
}

Pronto, teste seu filme e veja o resultado. Qualquer dúvida… comente.

Entry filed under: AS3. Tags: .

NetStream no AIR FullScreen

4 Comentários Add your own

  • 1. sofia  |  abril 6, 2008 às 1:49 pm

    obrigada por isto marcelo.. eu tou confusa! :( como eh que eu organiso/adiciono o meuXml ?

  • 2. João F. Melo  |  agosto 16, 2008 às 6:33 pm

    Marcelo, muito bom bom mesmo este post, com ele pude aprender como fazer um simples menu+xml em as3 que há tempo estou qurendo aprender mas ainda ñ tinha encontrado uma forma super explicativa.
    Muito Obrigado.

    Sofia, a estrutura do xml pode ser assim:


    abraços

  • 3. João F. Melo  |  agosto 17, 2008 às 7:05 pm

    Não sei pq acima ñ saiu o código, mas ai

  • [...] Como no as3 não tem mais duplicateMovieClip e sim o addChild() e foi baseado no exemplo do Marcelo Duende que fiz este [...]

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Sair / Alterar )

Imagem do Twitter

You are commenting using your Twitter account. Sair / Alterar )

Foto do Facebook

You are commenting using your Facebook account. Sair / Alterar )

Connecting to %s

Enviar trackback para este post  |  Subscribe to the comments via RSS Feed


Tags

AIR AS3

Categorias

AIR AS3

Tópicos recentes

del.icio.us


Seguir

Obtenha todo post novo entregue na sua caixa de entrada.