Os dados estão nesse XML, é bom dar uma olhada nele.
Escolha uma opção.
O código comentado:
//importando a casse Tweener.
import caurina.transitions.Tweener;
//criando os objetos XML
var xml1:XML;
var xmlList1:XMLList;
//carregando o XML
var xmlLoader1:URLLoader = new URLLoader();
xmlLoader1.load(new URLRequest("http://65.254.56.211/~soda/sodaflash/select/sel.xml"));
xmlLoader1.addEventListener(Event.COMPLETE, xmlLoaded1);
//ao carregar o XML entra nessa função
function xmlLoaded1(event:Event):void {
//preparando o XML
xml1=XML(event.target.data);
xmlList1=xml1.children();
//for para ler os nós do XML
for (var i:int = 0; i < style="color: rgb(153, 153, 153);">//criando o objeto Nome
Nome = new nome();
//adicionando ao comboBox
sel.aqui.addChild(Nome);
Nome.name=String(i); Nome.texto.text=xmlList1[i]; Nome.y=Nome.height*i; Nome.addEventListener(MouseEvent.MOUSE_OVER,overNome); Nome.addEventListener(MouseEvent.MOUSE_OUT,outNome); Nome.addEventListener(MouseEvent.CLICK,clickNome);
}
}
//criando o objeto Nome
var Nome:nome;
//variavel que pega o local Y do objeto clicado
var seguraY:int=0;
//mascara do comboBox
sel.aqui.mask=sel.mascara;
//função para quando o mouse passa em cima do objeto do combobox
function overNome(e:Event) {
sel.aqui.y=0;
//tween para abrir o comboBox
Tweener.addTween(sel.fundo,height:sel.aqui.height,time:1}); Tweener.addTween(sel.mascara,height:sel.aqui.height,time:1});
//um jeito rapido de mudar a cor do objeto do comboBox
e.target.parent.bg.alpha=.8;
}
//função para quando o mouse sai de cima do objeto do combobox
function outNome(e:Event) {
//a "cor"
e.target.parent.bg.alpha=0;
//o seguraY é usado para voltar para o ultimo objeto clicado
sel.aqui.y=seguraY;
//tween para fechar o comboBox
Tweener.addTween(sel.fundo,{height:Nome.height,time:1}); Tweener.addTween(sel.mascara,{height:Nome.height,time:1});
}
//função para quando clicar no objeto do comboBox
function clickNome(e:Event) {
//chama a função que exibe o resultado
mostraResultado(e.target.parent.name);
//adiciona um objeto para para não atrapalhar na animação
sel.addChild(square);
//faz com que esse objeto suma depois de 1seg.
meuTempo.start();
//guarda a posição do clicado
seguraY = -(e.target.parent.y);
Tweener.addTween(sel.aqui,{y:-(e.target.parent.y),time:1});
var t:int=e.target.parent.name;
}
//função de mostra o resultado como o próprio nome já diz.
function mostraResultado(s:String){
trace(s);
resultado.text = xmlList1[int(s)];
}
//o objeto mágico criado para ajudar...
var square:MovieClip = new MovieClip();
square.graphics.beginFill(0xFF);
square.graphics.drawRect(0,0, 200, 5000);
//troque esse parametro para 1, para descobrir a mágica
square.alpha=0;
square.graphics.endFill();
//função do timer, já falei sobre isso no post passado.
var meuTempo:Timer=new Timer(1000); meuTempo.addEventListener("timer", FuncaoDoTimer);
function FuncaoDoTimer(e:TimerEvent) {
sel.removeChild(square);
meuTempo.stop();
trace("Timer chamado " + meuTempo.currentCount + " veses.");
}
Ufa, essa foi grande, por favor, qualquer dúvida comenta ai!.
Baixar fonte aqui