Webdesign, Dreamweaver, Coreldraw, Illustrator, Photoshop, Flash, Indesign, PHP, Programação, Dicas, Truques ...

Calendário

Setembro 2010
DomSegTerQuaQuiSexSab
 << < > >>
   1234
567891011
12131415161718
19202122232425
2627282930  

Últimos comentários

Oi Rodrigo! Achei muito bom o ...

14/07/2009 @ 02:46:05
por Susana


Anúncio

Arquivos

rss Sindicação

Quem está conectado?

Membro: 0
Visitante: 1

16 Maio 2009 - 12:57:38
Leitura de arquivos externos no ActionScript 3.0

Leitura de arquivos externos no ActionScript 3.0



Chamando URLs externas


No ActionScript 2.0, para chamar uma URL externa, utilizávamos o método getURL, que pedia uma String contendo o caminho da URL.


No ActionScript 3.0, todo caminho de URL é do tipo
URLRequest, que pede como parâmetro uma String contendo o caminho da
URL. Isso vale para qualquer chamado externo, seja com caminho local ou
global.


Na nova versão podemos armazenar em arquivos externos não somente
classes e interfaces, mas também funções, como é o caso abaixo com o
navigateToURL que substitui o getURL.




import flash.net.URLRequest;
import flash.net.navigateToURL;
var chama:URLRequest = new URLRequest("http://www.leandroamano.com.br");
navigateToURL
(chama);


Lendo arquivos externos (.txt e .xml)


O conteúdo do site deve sempre estar bem dividido para que assim
haja uma fácil manutenção para o administrador do site, bem como fácil
acesso dos usuários. Neste artigo iremos observar como funciona o
carregamento de dados textuais externos, da maneira mais simples
possível.


Também podemos utilizar XML ou Flash Remoting (sistema AMF) para envio
e recebimento de dados com o servidor, através de chamadas assíncronas.
Este último foi estudado no artigo anterior.
Existe uma série de utilidades para usar o servidor como acesso e/ou envio de dados, que incluem:



  • Enviar valores de um formulário para armazenamento num banco de dados.

  • Enviar valores de um formulário para um ou mais e-mails.

  • Carregar valores de um texto para criação de links ou novidades.

  • Carregar valores a partir de um arquivo de servidor para exibição
    de uma aplicação simples como uma galeria de fotos, ou mesmo uma
    aplicação mais complexa como um e-commerce.

  • Enviar valores e aguardar uma resposta como, por exemplo, um acesso restrito de usuário e senha.


A forma de acesso a esses dados é dada em pares de valores, por exemplo, nome=valor.


Quando se tem mais pares de valores, é necessário utilizar o símbolo &, por exemplo, nome=valor&nome2=valor2

Carregando arquivos de dados externos


O objeto usado será o URLLoader que substitui o LoadVars do ActionScript 2.0.


Para carregar dados externos definiremos dois arquivos, o primeiro um
texto simples, e o segundo um arquivo de servidor, em nosso exemplo o
ColdFusion.
O formato de retorno vem em valores em pares, ou seja, variável=valor, determinamos então que o formato é: (flash.net.URLLoaderDataFormat.VARIABLES)




var loader:URLLoader = new URLLoader();
loader
.dataFormat = URLLoaderDataFormat.VARIABLES;
loader
.load(new URLRequest("texto.txt"));


É necessário saber também quando os dados estão disponíveis. O
evento event.COMPLETE nos avisa e, quando executado, podemos aplicar um
loop no resultado:




function handleComplete(event:Event):void {
trace
("O Resultado pode ser apresentado");
for (var i:String in resposta.data) {
trace
(i + " = "+ resposta.data[i]);
}
}


Um exemplo completo pode ser observado abaixo:




//Arquivo texto.txt
nome
=Leandro+Amano&numero=1234
//Arquivo index.cfm
<cfsetting enablecfoutputonly="yes">
<cfprocessingdirective suppresswhitespace="yes">
<cfset someText = "teste">
<cfoutput>someText=#someText#</cfoutput>
</cfprocessingdirective>
//Arquivo .fla
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.net.URLLoaderDataFormat;
import flash.events.IOErrorEvent;
import flash.events.HTTPStatusEvent;
import flash.events.SecurityErrorEvent;
import flash.events.Event;
var loader:URLLoader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.VARIABLES;
loader.addEventListener(IOErrorEvent.IO_ERROR, handleIOError);
loader.addEventListener(HTTPStatusEvent.HTTP_STATUS, handleHTTPStatus);
loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, handleSecurityError);
loader.addEventListener(Event.COMPLETE, handleComplete);
//loader.load(new URLRequest("texto.txt"));
loader.load(new URLRequest("http://localhost:8500/
as3/index.cfm"));
function handleIOError(event:IOErrorEvent):void {
trace("
Loade failed: IO error: "+event.text);
}
function handleHTTPStatus(event:HTTPStatusEvent):void {
trace("
Load status: HTTP status: "+event.status);
}
function handleSecurityError(event:SecurityErrorEvent):void {
trace("
Load failed: Security Error: "+event.text);
}
function handleComplete(event:Event):void {
trace("
The data has successfully loaded");
var resposta:URLLoader = URLLoader(event.target);
trace(resposta.data.nome);
trace(resposta.data.numero);
for (var i:String in resposta.data) {
trace(i + "
= "+ resposta.data[i]);
}
}



Objeto XML


Desde o ActionScript 1 (Flash Player 5) o Flash possuía a capacidade de ler objetos XML externos, baseados no DOM (W3C Document Object Model), o padrão para interação com documentos XML.


Em ActionScript 3.0 a classe XML foi totalmente modificada.
XML é um tipo nativo do Flash, antigos métodos e propriedades para a
leitura desses dados externos (firstChild, childNodes, etc) se encontram agora na classe XMLDocument, localizada no pacote flash.xml.


A ActionScript 3.0 implementa o padrão ECMAScript for XML (E4X) que não será discutido agora.


//Top Level class XML
var xml:XML = <doc>
<curso>ActionScript 3.0</curso>
<curso>Adobe Flex 3</
curso>
<curso>Adobe Dreamweaver CS3</curso>
<curso>Adobe ColdFusion 8</
curso>
</doc>;


Lendo um XML externo


Para a leitura de um XML externo utilizaremos uma leitura de arquivo
externo comum como vimos acima. Dentro do evento Event.COMPLETE,
trataremos o objeto lido como um XMLDocument.




import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.xml.XMLDocument;
import flash.events.Event;
var loader:URLLoader = new URLLoader();
loader
.addEventListener(Event.COMPLETE, onComplete);
loader
.load(new URLRequest("xml_externo.xml"));
function onComplete(e:Event):void {
var xml:XML = XML(e.currentTarget.data);
var xmlDoc:XMLDocument = new XMLDocument();
xmlDoc
.ignoreWhite = true;
xmlDoc
.parseXML(xml);
var tamanho:uint = xmlDoc.firstChild.childNodes.length;
for(var i:uint; i<tamanho; i++){
// ActionScript 3.0
// Adobe Flex 3
// Adobe Dreamweaver CS3
// Adobe ColdFusion 8
trace
(xmlDoc.firstChild.childNodes[i].firstChild.nodeValue);
}
}
Fonte: www.imasters.com.br





rodrigofm · 493 vistos · 2 comentários
Categorias: Flash, Programação

Link permanente para o artigo completo

http://rodrigofm.bloggeiros.com/RodrigoFM-b1/Leitura-de-arquivos-externos-no-ActionScript-30-b1-p51.htm

Comentários

Este artigo ainda não tem Comentário ...


Deixe um comentário

Estado dos novos comentários: Publicado





Sua URL será visualizada.

 
Entre com o código contido nas imagens


Texto do comentário

Opções
   (Salvar o nome, email e a url em cookies.)