Arquivo para a Tag ‘menu’

Simples menu+xml com Tweener

Fazia algum tempo que eu estava tentando fazer um menu como este, e mesmo pesquisando e perguntando em fórum não consegui e os que encontrei eram pago (eu não iria pagar mesmo se posso estudar e aprender).
Como no as3 não tem mais duplicateMovieClip e sim o addChild() e foi baseado no exemplo do Marcelo Duende que fiz este menu.

  1. 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.

import caurina.transitions.Tweener;
// Declarando variaveis
var final:Number = new Number;
var cont:container = new container;
var xml:XML;
var url:URLRequest = new URLRequest("menu.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 = 15;
cont.x = -350;
var objeto:Polygon = new Polygon();
// 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.clica.text = xml.item[i].@nome;//Resgata do XML o nome="Dicas"
objeto["id"] = i;
objeto.buttonMode = true;
objeto.mouseChildren = false;//Habilita mouseHand
cont.addChild(objeto);
Tweener.addTween(objeto, {x:i*85, time:1, delay:0, transition:"easeOutBack"});
//Se for y:i*85 fica na vertical, lembrando que 85 aqui é a distancia entre os botões
// Evento de clique no movie clip filho
objeto.addEventListener(MouseEvent.MOUSE_DOWN, ChamaObj);
}
}
// Função do clique
function ChamaObj(event:MouseEvent):void {
cliquei_txt.text = xml.item[event.currentTarget["id"]].@link;
}
O xml

<menu>
<item nome=”Home” link=”http://site.com” />
<item nome=”Dicas” link=”http://site2.com” />
<item nome=”Contato” link=”http://site3.com />

<item nome=”Portifólio” link=”http://site4.com” />

</menu>

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