Autor: Rodrigo Gonçalves
Classe: String
Versão AS: ActionScript 2.0 e 3.0
Obs.: Para um bom aproveitamento deste artigo é interessante ter conhecimento básico de Strings e Arrays.
Fala galera, tranquilo?
Vamos ver como podemos converter um valor do tipo String (texto) em "elementos" de Array.
Para isto, utilizamos o método split() da Classe String().
Sintaxe do método String.split():
split(delimiter:String, limit:Number):Array
O método String.slpit() "divide" valor inserido em um objeto String e retorna como valor do tipo Array. Ou seja, podemos controlar/manipular valores de um "texto"(String) como elementos de Array.
Este método split() tem dois parâmetros, sendo eles:
delimiter:
Primeiro parâmetro, é o "delimitador". Ou seja, utiliza uma "palavra chave" que você determina(pode ser qualquer valor que estiver inserido na String) a qual será usado como separador. Este parâmetro deve ser colocado entre aspas duplas " " pois é do tipo String. Este delimitador funciona como uma espécie de "separador" entre cada elemento que você quer separar. Claro que você deverá inserir um caracter comum para todos os elementos que você quer separar.
Desta maneira, conseguirmos "dividir" valores de uma String como elementos de Array e manipulá-los como tal. Caso seja indefinido( undefined ) este primeiro parâmetro, o objeto String inteiro será inserido no primeiro elemento do Array. Sabendo que um "index Array" começa a contagem de elementos a partir do número 0 (zero) e não a partir do número 1.
limit:
Segundo parâmetro, é o "limite". Pode ser opcional, é o "número máximo" de elementos que você quer separar e inserir em um objeto Array. Caso não seja colocado o segundo parâmetro, por padrão irá inserir todos elementos separados pelo delimitador.
Vamos ver alguns exemplos de como utilizar o método split().
Vamos criar um objeto String que recebe como valor uma lista de "dias da semana", estes valores estão separado por vÃrgulas(poderia ser qualquer caracteres que quisermos).
Crie um novo arquivo Fla(pode ser versão AS2 ou AS3). Clique no primeiro e único frame da primeira layer e abra o painel de Actions (atalho F9), digite:
1 2 | var listaTexto:String = "domingo,segunda,terça,quarta,quinta,sexta,sábado"; trace(listaTexto); //retorna o valor da String |
Teste o filme(Ctrl + Enter). Repare que retorna o valores da listaTexto na caixa de saÃda(Output). Mas, não conseguimos manipular ou "controlar" este valor da String "pegando" apenas um dos valores da nossa lista de "dias da semana".
Certo. Agora vamos utilizar o método String.split() para conseguirmos manipular os valores desta lista. Apague a última linha 2:
2 | trace(listaTexto); |
E digite:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /* criamos um objeto Array que recebe valor do Objeto String * separando cada elemento pelo demilitador virgula */ var listaArray:Array = listaTexto.split(","); // manipulando os valores recebidos trace(listaArray[0]); // retorna domingo trace(listaArray[1]); // retorna segunda trace(listaArray[2]); // retorna terça trace(listaArray[3]); // retorna quarta trace(listaArray[4]); // retorna quinta trace(listaArray[5]); // retorna sexta trace(listaArray[6]); // retorna sábado trace(listaArray); // retorna a lista completa |
Teste o filme(Ctrl + Enter). Repare que agora você consegue manipular estes valores da String utilizando como elementos de Array[ ].
O Array também aceita valores numéricos, strings, booleano(true ou false) ou objetos inseridos como valores na mesma variável.
Também posso utilizar o valor " "(espaço) que é inserido entre cada palavra do texto(String), sendo como meu "delimitador". Ou seja, podemos "separar" cada palavra da frase aproveitando apenas o espaço entre elas, conseguindo manipular cada palavra individualmente como um elemento de Array.
Outro exemplo:
1 2 3 4 5 6 7 8 | var texto:String = "O menino estava ouvindo música." var listaArray:Array = texto.split(" "); trace(listaArray); // retorna a frase, no lugar do "espaço" está vÃrgulas trace(listaArray[0]); // retorna O trace(listaArray[1]); // retorna menino trace(listaArray[2]); // retorna estava trace(listaArray[3]); // retorna ouvindo trace(listaArray[4]); // retorna música. |
Qual a utilidade em converter uma String em Array?
Também podemos trabalhar com variáveis externas(ex.: um arquivo.txt) e converter este valor da variável em elementos Arrays. Sabendo que os valores da variável externa é "tratada" como tipo String pelo Flash. Você consegue converter em Arrays e manipular este valores como Array.
Isto pode ser muito útil quando queremos trabalhar por exemplo, com apenas uma variável (seja inseridas no flash ou de algum arquivo externo) que recebem um ou mais tipos de valores como uma "lista" de diversos valores(ex. de lista: valor1, valor2, valor3,…valorN).
Você pode criar apenas uma variável que recebe varios valores desta "lista". Este valores da variavel devem ser separados cada um utilizando qualquer caracter em comum que você determinar(ex.: uma vÃrgula, uma letra, numero, etc), e manipular estes mesmo valores utilizando comportamento de index Array[0, 1, 3,…N] como mostrado nos exemplos acima.
Para aplicar o método split() em uma caixa de texto dinâmica. Ao invés de utilizar o método trace() que retorna o valor na caixa de saÃda(Output), basta aplicar os valores do Array na caixa de texto dinâmica utilizando a propriedade TextField.text.
Ex.:
meuCampo.text = listaArray[0]; meuCampo.text = listaArray[1]; meuCampo.text = listaArray[2];
Abraços e até a próxima!
Rodrigo Gonçalves
Equipe Alvo Web
O Conteúdo do Alvo Web Developers está licenciada sob uma Creative Commons Atribuição-Uso Não-Comercial-Compartilhamento pela mesma Licença 2.5 Brasil License.
4 respostas ↓
1 Thiago // Mi 8, 2008 at 12:23 pm
Diz aà Mestre!!!
Seguinte:
Tô no ramo da “web”, tem pouco tempo, estou querendo construir um sitezinho ( simples do tipo blog, talvez), na parte mais interessante da coisa eu fico meio grilado.
Bom, fiz um curso muito interessante sobre Corel Draw 13 (mas trabalho atualmente com a versão x4), passando pelo Photoshop descobri que tem como “mudar o mundo com este aplicativo”, aprendi sobre photoshop PS2( mas trabalho com a versão PS3,devido à interatividade com o Flash CS3), daà me esbarrei com o FLASH 8 (Acttion Script 2), e saà sem saber pouco sobre essa linguagem de programação. Atualmente me encontro no modulo HTML, e percebi que a tempestade passou, e que o grande problema é de fato o ACTION SCRIPT…
Minha intenção neste comentário, é saber se uma tão esclarecida a respeito do assunto poderia me passar algumas dicas de onde conseguir material para estudar a linguagem referida logo acima, e detalhe tenho problemas com inglês muito pesado, se possivel dicas de AS3.
Sou um fã declarado do seu site, a maneria como apresenta as dicas e tutoriais, enfim…
Eu acredito que somente dicas de Mestre poderão me salvar .rs
Desde de já agradeço.
Vlw.
2 Rodrigo // Mi 8, 2008 at 3:44 pm
Thiago,
Valeu mesmo pela sua visita e ficamos felizes de poder ajudar de alguma forma.
Primeiro de tudo, O mestre está no céu!
Ninguém sabe tudo, e pode ter certeza quem escolheu web como profissão é uma constante aprendizado e atualização. Uma das dicas é você especializar em algo que tem mais interesse ou facilidade em aprender, mas ao mesmo tempo ficar ligado ao seu redor e tentar também aprender sobre o que tem haver com sua área de atuação.
Primeira dica que recebi quando comecei estudar programação é, aprender “lógica de programação”. Depois que pegar o conceito de “lógica de programação”, “programação orientada a objetos”,… cada linguagem existe seus métodos, sintaxes, propriedades, classes entre outros nomes a qual cada programação tem, e precisamos aprender e praticá-las.
Na própria web se você usar sites de buscas você encontra excelentes portais dedicados a cada tipo de programação ou tecnologia.
O inglês infelizmente(ou felizmente) será seu “aliado” nos estudos. Então um conselho, não desista em aprender o inglês, se você quer saber sobre tecnologia, vai precisar disso. A grande maioria dos materiais mais atuais estão em inglês.
Existe tradutores online que ajudam a entender pelo menos o conceitos do texto.
Tradutor do Google
Segue alguns sites que me ajudam e muito nos estudos e existe fóruns de dúvidas, tutoriais, dicas de profissionais da áreas:
http://imasters.uol.com.br/
http://www.mxstudio.com.br/
http://www.pontoflash.com.br/
http://www.webtutoriais.com/
http://www.plugmasters.com.br/
http://flashmasters.net/
http://www.gotoandlearn.com (vÃdeos tutoriais em inglês)
http://tutoriaisphotoshop.blogspot.com/
http://www.bluevertigo.com.ar/ (portal com diversos sites)
Em fim, saiba que a motivação de aprender está em você mesmo. Se é isso que você quer, não desista. Cada pessoa tem seu jeito de estudar, aprender. Você só precisa descobrir seu jeito de se motivar, quando você perceber estará entendendo aquilo que antes parecia algo “impossÃvel de aprender”. Não é mágica, é só persistir(persistir mesmo!) e simplesmente tentar. Não tenha medo de “errar”, os erros que te ajudam muito mais a refletir e aprender também.
Qualquer dicas, sugestões ou criticas que nos ajude a melhorar. Nos avise.
Abraços e obrigado.
3 HarDesign // Mi 23, 2008 at 3:39 pm
Cara ótimo Post…
Não tinha imaginado no porque de converter e realmente os argumentos são fortes!!
Mto obrigado!!!
Abraço!
Ateh!!
4 Joe Envoir // Ago 20, 2008 at 3:44 pm
Good Explanation.
Faça um comentário