Posts de Agosto 20th, 2008|Página de posts diários

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.

Mostrar Hora e Data

Nesse Exemplo estou usando 2 campos de textos instanciandos
texto1 e texto2
Para aprendizado, aconselho a criação do TextField via actionscript

var tempo:Timer = new Timer(1000);
tempo.start();
tempo.addEventListener(TimerEvent.TIMER,mostra);
function mostra(evento:TimerEvent):void {

var valores:Date = new Date();
var ano:String=String(valores.getFullYear());
var mes:String=String(valores.getMonth()+1);
var dia:String=String(valores.getDate());
var data_formatada:String=dia + “/” + mes + “/” + ano;
texto1.text=data_formatada;

var hora:String=String(valores.getHours());
var minuto:String=String(valores.getMinutes());
var segundo:String=String(valores.getSeconds());

//Condições para acrescentar ‘0′ (zero)
if(hora.length==1){
hora = “0″ + hora;
}

if(minuto.length==1){
minuto = “0″ + minuto;
}

if(segundo.length==1){
segundo = “0″ + segundo;
}

var horario:String=hora + “:” + minuto + “:” + segundo;
texto2.text=horario;
}

fonte: http://ronaldohard.wordpress.com/2008/04/20/as3-data-hora/

Botão fugitivo

Primeiro faça um mc qualquer com instacia de bt_mc

bt_mc.addEventListener(MouseEvent.MOUSE_OVER, bt);//Adciona evento over
bt_mc.buttonMode = true;//Exíbe o cursor hand (mão)

function bt(e:MouseEvent):void {
x = Math.random()*100;
y = Math.random()*400;

}