Arquivar

Archive for the ‘Action Scirpt 2.0’ Category

DataGrid, List e ComboBox em Flash

04/02/2009 [Kawano] 1 comentário

Iae pessoal, como vão?

Aqui estou eu novamente pra postar algo a mais sobre programação em ActionScript 2.0.

Neste post irei mostrar a como utilizar os componentes DataGrid, List e ComboBox pra pegar valores de um array e mostrar nos componentes.

//

Criei 3 arrays normal, Nome, Cidade e Número. Depois mando pros componentes. Quando você clicar sobre um dado docomponente ele será impresso no Output, mostrando o conteúdo e indice do valor.

var palavras_1:Array = Array (“Kawano”, “Jorge”, “Gustavo”, “Wanderlei”, “Ana”, “Paula”, “João”, “Rafael”, “Sirlei”, “Alisson”, “Cláudio”, “Maria”, “Fernando”, “Cristiane”, “Michele”, “Júlio”, “Pedro”, “Érick”, “Jonatan”, “Nícolas”, “Leandro”, “Jhenifer”, “Tatiane”, “Pâmela”, “Thiago”, “Silvio”, “Liliane”);

var palavras_2:Array = Array (“Aracaju”, “Belém”, “Belo Horizonte”, “Boa Vista”, “Brasília”, “Campo Grande”, “Cuiabá”, “Curitiba”, “Florianópolis”, “Fortaleza”, “Goiânia”, “João Pessoa”, “Macapá”, “Maceió”, “Manaus”, “Natal”, “Palmas”, “Porto Alegre”, “Porto Velho”, “Recife”, “Rio Branco”, “Rio de Janeiro”, “Salvador”, “São Luís”, “São Paulo”, “Teresina”, “Vitória”);

var palavras_3:Array = Array (“282″, “153″, “869″, “850″, “543″, “400″, “260″, “384″, “907″, “216″, “57″, “789″, “329″, “839″, “218″, “565″, “342″, “893″, “46″, “118″, “730″, “666″, “351″, “579″, “612″, “434″, “515″);

var conteudoGrade:Array = new Array ();

/************************************
Passa valor para os componentes
************************************/

for (var a = 0; a < palavras_1.length; a++)
{
// Passando valores para o DataGrid
conteudoGrade.push ({Nome:palavras_1[a], Cidade:palavras_2[a], Numero:palavras_3[a]});
//
// Passando valores para o List
lista1.addItem ({label:palavras_1[a], data:a});
lista2.addItem ({label:palavras_2[a], data:a});
lista3.addItem ({label:palavras_3[a], data:a});
//
// Passando valores para o ComboBox
combo1.addItem ({label:palavras_1[a], data:a});
combo2.addItem ({label:palavras_2[a], data:a});
combo3.addItem ({label:palavras_3[a], data:a});

}

/************************************
Clicando no DataGrid
************************************/

var GridListener = new Object ();
GridListener.change = function (event)
{
// Quando clicar, mostra os dados da linha clicada.
trace (“\nData grid\n\tNome: ” + event.target.selectedItem.Nome + “\n\tCidade: ” + event.target.selectedItem.Cidade + “\n\tNúmero: ” + event.target.selectedItem.Numero);
};

// Add listener.
grade.addEventListener (“change”,GridListener);

// Passa conteúdo do vetor conteudoGrade pro DataGrid.
grade.dataProvider = conteudoGrade;

/************************************
Clicando no List
************************************/

var ListListener:Object = new Object ();
ListListener.change = function (evt_obj:Object)
{
// Display each property of the object.
var valores:String = “\nList -> “;

for (var i:String in evt_obj.target.selectedItem) {;

valores += ” ” + i + “: ‘” + evt_obj.target.selectedItem[i] + “‘”;

}
trace (valores);

};
// Add listener.
lista1.addEventListener (“change”,ListListener);

/************************************
Clicando no ComboBox
************************************/

var ComboBoxListener:Object = new Object ();
ComboBoxListener.change = function (evt_obj:Object)
{

var item_obj:Object = combo1.selectedItem;

trace (“\nComboBox”);

for (var i in item_obj)
{
trace (“\t” + i + “:\t” + item_obj[i]);
}
};
// Add listener.
combo1.addEventListener (“change”,ComboBoxListener);

Clique aqui pra abaixar o fonte do post.
Bom é isso, qualquer duvida é só mandar.
Abraço.

Lendo XML no Flash.

Depois de tanto tempo sem postar nada, não sei o que me deu, mas esse é o meu 3º post. Sim! Estou no trabalho! eheh

Bom! Vamos lá.

Utilizando o Flash, vamos ler um XML externo, com dados de dois nós.


// XML UTILIZADO. (dados.xml)
<?xml version=”1.0″ encoding=”utf-8″ ?>

<dados>
<lingua nome = “Masculino”>
<retorno valor = “João” />
<retorno valor = “Rafael” />
<retorno valor = “Cláudio”/>
<retorno valor = “Eduardo”/>
<retorno valor = “Alexandre”/>
</lingua>

<lingua nome=”Feminino”>
<retorno valor = “Maria”/>
<retorno valor = “Michele”/>
<retorno valor = “Fabiola”/>
<retorno valor = “Pâmela”/>
<retorno valor = “Tatiane”/>
</lingua>

</dados>

// Código Flash

import mx.transitions.Tween;

//

var dados_xml:XML = new XML ();
dados_xml.ignoreWhite = true;

dados_xml.onLoad = function (success:Boolean)
{
trace (“Lendo XML”);

// Vendo quantos itens tem no 1º nó do XML. ( length = 2 ‘Masculino e Feminino’)
for (var a = 0; a <= dados_xml.firstChild.childNodes.length – 1; a++)
{
// Pegando os dados do 1º nó do xml. (Atributo – nome = ‘Masculino e Feminino’)
trace (“\nTipo: ” + dados_xml.firstChild.childNodes[a].attributes.nome + “\n”);

// Passando em todos os itens do 1º nó e vendo o tamanho do conteúdo dentro dele.
// Length = 5, os 5 nomes no atributo valor.
for (var b = 0; b <= dados_xml.firstChild.childNodes[a].childNodes.length – 1; b++)
{
// Pega o conteúdo de dentro de cada nó e mostra. (Atributo = valor)
// Mostra os nomes das pessoas.
trace (“Nome: ” + dados_xml.firstChild.childNodes[a].childNodes[b].attributes.valor);
}
}

trace (“\nOU”);

trace (“\nTipo: ” + dados_xml.firstChild.childNodes[0].attributes.nome + “\n”);
trace (“Nome: ” + dados_xml.firstChild.childNodes[0].childNodes[0].attributes.valor);
trace (“Nome: ” + dados_xml.firstChild.childNodes[0].childNodes[1].attributes.valor);
trace (“Nome: ” + dados_xml.firstChild.childNodes[0].childNodes[2].attributes.valor);
trace (“Nome: ” + dados_xml.firstChild.childNodes[0].childNodes[3].attributes.valor);
trace (“Nome: ” + dados_xml.firstChild.childNodes[0].childNodes[4].attributes.valor);

trace (“\nTipo: ” + dados_xml.firstChild.childNodes[1].attributes.nome + “\n”);
trace (“Nome: ” + dados_xml.firstChild.childNodes[1].childNodes[0].attributes.valor);
trace (“Nome: ” + dados_xml.firstChild.childNodes[1].childNodes[1].attributes.valor);
trace (“Nome: ” + dados_xml.firstChild.childNodes[1].childNodes[2].attributes.valor);
trace (“Nome: ” + dados_xml.firstChild.childNodes[1].childNodes[3].attributes.valor);
trace (“Nome: ” + dados_xml.firstChild.childNodes[1].childNodes[4].attributes.valor);
};

dados_xml.load (“dados.xml”);

Pra você ler um arquivo xml, você precisa acessar cada nó do xml e ler seu conteúdo. Como se fossem pastas e sub pastas com seu conteúdo respectivo.

// Saída do Código.

Lendo XML

Tipo: Masculino

Nome: João
Nome: Rafael
Nome: Cláudio
Nome: Eduardo
Nome: Alexandre

Tipo: Feminino

Nome: Maria
Nome: Michele
Nome: Fabiola
Nome: Pâmela
Nome: Tatiane

OU

Tipo: Masculino

Nome: João
Nome: Rafael
Nome: Cláudio
Nome: Eduardo
Nome: Alexandre

Tipo: Feminino

Nome: Maria
Nome: Michele
Nome: Fabiola
Nome: Pâmela
Nome: Tatiane

Bom pessoal é isso, se tudo rolar bem, ainda essa semana posto algo sobre Flex.

Abraço a todos.

Clique aqui para abaixar o código fonte do post.

Banner randômico em flash

Iae pessoal como vão?Depois de muito tempo aqui estou eu postando coisa nova pra vocês.

Peguei férias do trabalho e faculdade, ai viajei e não deu pra postar aqui no blog. Mas agora voltei e logo irei postar várias cosias sobre Flex.

Hoje irei mostrar como se faz um sisteminha de troca de banner em flash. É simples e funcional.

//

Nesse sistema de banner, será possível por pro banner fazer a troca randômica das imagens ou na sequência.

Crie um arquivo novo, com dimensões de 750 por 150.

Depois crie um retângulo com as mesmas dimensões do palco.
Com o retângulo selecionado, aperte F8 pra criarmos um movie clip.
Coloque o nome de “M_img_1” e o linkage “L_img_1“.

Convert to Symbol

Repita esse processo para 6 imagens, pra diferenciar mude a cor dos retângulos, digite alguma coisa etc. Colocando os nomes na sequencia.M_img_1, M_img_2, M_img_3 e assim por diante, a mesma coisa com o linkage.

//

Abra a janela de action script apertando a tecla F9.
Depois cole esse código na janela do action script.

var intervaloID:Number;

// Tempo de troca das imagens do banner (1000 = 1s)
var duracao:Number = 3000; // 3 segundos

// Definir o número de imagens que serão usadas no banner.
var numeroDeImagens:Number = 6;

// Número que foi sorteado aleatóriamente.
var numeroRandomico:Number;

// Se deixar em true, as imagens no banner irão aparecer de forma aleatória.
var ativarRandomizacao:Boolean = false;

// contador pra forma não randomica.
var aux:Number = 1;

/*
As imagens deverão estar dentro de MovieClips, na biblioteca.
O Linkage dos movieClips, deverá ser. “L_img_1, L_img_2, L_img_3…”
*/

function chamaSetInterval ():Void
{
trace (“Set Interval”);
//
if (ativarRandomizacao)
{
// Removendo imagens do banner.
removeMovieClip (“I_img_” + numeroRandomico);

// Sorteando um número para a próxima imagem no banner.
numeroRandomico = Math.floor (Math.random () * (numeroDeImagens – 1 + 1)) + 1;

// Puxando a imagem da biblioteca.
attachMovie (“L_img_” + numeroRandomico,”I_img_” + numeroRandomico,this.getNextHighestDepth ());

}
else
{
// Removendo imagens do banner.
removeMovieClip (“I_img_” + (aux – 1));

// Puxando a imagem da biblioteca.
attachMovie (“L_img_” + aux,”I_img_” + aux,this.getNextHighestDepth ());
//
if (aux == 6)
{
aux = 1;
}
else
{
aux++;
}
}
}
intervaloID = setInterval (this, “chamaSetInterval”, duracao);

Agora é só você testar o arquivo.
Pra gerar o swf, aperta Ctrl + Enter.

Veja que o banner está trocando na ordem em que o linkage foi colocado.
L_img_1
L_img_2
L_img_3
L_img_4
L_img_5
L_img_6

Se você quiser que o banner troque as imagens aleatóriamente, mude a variável ativarRandomizacao para true.

É isso pessoal, espero que gostem.
Qualquer duvida é só perguntar.

Abraços!

Para abaixar o fonte do post clique aqui.