terça-feira, julho 05, 2005

Flash — Objeto loadVars

Carregar textos ou informações externas é uma das grandes qualidades do flash, podemos ler txts externos ou mesmo fazer integração com bancos de dados através de linguagens como php, asp ou cfm.
O recurso disponível para isso no flash é um objeto chamado "loadVars". De utilização extremamente simples, pode receber, enviar ou receber e enviar dados externamente. Este tutorial irá apenas explicar o funcionamento básico do objeto, que seria receber dados de um arquivo txt externo. Imagine a atualização de informações podendo ser feita sem que você tenha que alterar o fla, apenas atualizando um arquivo de txt, muito prático não?
Deixemos para um outra ocasião algumas utilizações mais complexas como leitura e alimentação de bancos de dados integrando flash e php, por exemplo.
Então vamos às explicações.
O código que segue abaixo está comentado a cada ação, portanto num arquivo novo de flash cole estas ações no primeiro frame:

var lv:LoadVars = new LoadVars();
/*criado o objeto LoadVars*/
lv.onLoad = function(ok) {
/*uma função que é executada no evento "onLoad" para o carregamento dos dados externos*/
createTextField("msg_txt", getNextHighestDepth(), 10, 10, 100, 300);
/*Criamos um textField para exibir o conteúdo do arquivo externo*/
msg_txt.multiline = true;
msg_txt.wordWrap = true;
/*e determinamos para ele alguams propriedades*/
if (ok) {
/*Uma condicional para verificar se o arquivo foi carregado*/
msg_txt.text = lv.texto;
/*caso o arquivo tenha sido carregado o bloco de texto criado irá exibir o conteúdo
da variável que existe no arquivo externo, o objeto loadVars identifica variáveis através do caractere "&" seguido do
nome da variável e um sinal de "=" que é atribuição e não igualdade, ou seja no seu txt, php, asp ou cfm você deve declarar as
variáveis desta maneira, por exemplo, no nosso caso o txt externo fica assim:
&texto=Entre o sim e o não existe um vão &texto2=Ser ou não ser, eis a questão.
E aí note que voce determina que o bloco de texto vai exibir a variável dizendo:
msg_txt.text = lv.texto
A variável "texto" foi "incorporada" pelo objeto loadVars e você pode determinar que ela vá para onde quiser,
inclusive para blocos de texto que não estejam na mesma timeline, basta endereçar corretamente.
*/
msg_txt.text += newline+lv.texto2;
/*Podemos receber mais de uma variável pelo mesmo objeto, como vemos aqui
o mesmo bloco de texto também pode exibir mais de uma variável
*/
} else {
msg_txt.text = "Ocorreu uma falha ao carregar o arquivo.";
/*Caso o arquivo não tenha sido carregado o bloco
de texto exibe a informação de falha*/
}
};
lv.load("texto_externo.txt");
/*
Aqui dizemos ao objeto LoadVars o endereço do arquivo externo
*/


Um último detalhe, abra o bloco de notas e digite:

texto=Entre o sim e o não existe um vão.&texto2=Ser ou não ser, eis a questão.

Salve como "texto_externo.txt", sem as aspas, claro.

Como eu disse as variáveis são declaradas pelo "&" mais o nome da variável seguida do sinal de atribuição "=" e recomendo que salve o seu texto pelo bloco de notas, por exemplo, usando a codificação "utf-8" que você seleciona no momento de salvar o arquivo, isto evita problemas com acentuação no texto carregado em qualquer plataforma.

Espero que tenha ficado claro.

explore

Inicio este blog para postar por ele endereços e comentários sobre experiências com flash, minhas e outras que ue ache interessantes e mais exporadicamente publicar alguns artigos ou tutoriais. A primeira postagem é esta experiência com desenho dinâmico usando métodos attachMovie, basicamente. Veja e comente:
explore

P.S. O arquivo está disponível para download, aberto o link, clique com o botão direito do mouse e selecione a opção para baixar o arquivo.
Abraços,
Avanzi