Você está na página 1de 13

Categorias

Dreamweaver Flash ActionScript Animao Notcias Photoshop PHP Tableless e CSS Windows Movie Maker Wordpress

Spry collapsible painel XML externo com AS3

Carregando variveis com AS3


Fevereiro 20, 2008 18 comentrios Autor: Rodrigo Gonalves Package: flash.net Classe: public class URLLoader Verso AS: ActionScript 3.0 Player: Flash Player 9 Dificuldade: conhecimentos bsicos de funcionamento do Flash, Actionscript 3.0 e lgica de programao. Fala Galera, tranquilo?! Vamos ver como carregar variveis com AS3. Mas antes interessante sabermos como o Flash trabalha leitura de dados no AS3. Caso voc j tenha conhecimentos sobre variveis, sinta-se a vontade para pular a introduo.

Introduo
Quando o Flash carrega dados de uma URL, o Flash Player pode interpretar de trs formas, sendo elas:

Quando o Flash carrega dados de uma URL, o Flash Player pode interpretar de trs formas, sendo elas: - Texto: como exemplo HTML e XML; - Binrio; - Variveis: conhecido tambm como URL-encoded variables. Veremos sobre variveis, e precisamos seguir algumas regras mais importantes para criao de variveis: * Cada nome de varivel tem que ser associada com um valor sempre usando o sinal de igual (=) sem espaos entre eles. No podemos confundir com sinal de equivalncia (==), que serve para comparao entre dois valores, e no para associao de um valor para varivel; Ficando algo do tipo: minhaVariavel=meuValor. Quer dizer que minhaVariavel recebe(=) meuValor como contedo. * Os valores das variveis so tratadas como tipo Strings no Flash. Sendo assim, no precisamos inserir aspas duplas " " ou aspas simples em seus valores; * Se existir mais de um par de variveis/valores que queira acrescentar no arquivo, devemos separar utilizando o sinal (&). Exemplo: variavel1=valor1&variavel2=valor2&variavel3=valor3 * Para representar os espaos quando digitamos a tecla "espao". Para uma melhor compatibilidade de leitura, podemos tambm utilizar o sinal de adio (+). Exemplo: variavel=Aqui+carregamos+valores Isto quando o Flash l esta variavel reconhece o sinais(+) inseridos no valor como se tivesse digitado o "espao" no teclado, mostrando da seguinte maneira: Aqui carregamos valores. Podemos tambm utilizar o espao normal. Exemplo variavel=Aqui carregamos valores Ou ainda caracteres como (%20) que representa o "espao". Exemplo: variavel=Aqui%20carregamos%20valores Com isso j sabemos o principal e essencial que o Flash precisa para podermos formatar os dados carregados e fazer com que o Flash faa a leitura corretamente. Na verso AS3, no utilizamos mais a classe LoadVars para carregar ou enviar dados como faziamos na verso anterior do Actionscript. Passamos agora, a utilizar a classe URLLoader(). Esta classe tambm pode trabalhar em "conjunto" com algumas outras classes, como Ex.: URLRequest(), URLVariables(), URLStream, Loader(), entre algumas outras classes. - URLLoader(), responsvel por "recuperar" dados/informaes externas no Flash; - URLRequest(), responsvel por armazenar endereos externos; - URLVariables(), utilizado para criarmos variveis dentro do Flash para comunicar com um scripts (ex: PHP, ASP) quando queremos fazer formulrios de envio de e-mail ou buscas; - URLStream(), utilizado para fluxo de dados. Mas aconselhvel utilizar esta classe somente em casos que o arquivo "muito grande" e a URLLoader() no suficiente. Por exemplo, podemos dizer que esta classe URLStream() verifica os dados que j foram carregados e mostra no filme conforme esteja disponvel ou para verificar o progresso de download do arquivo. - Loader(), responsvel por carregar arquivos externos, como imagens(.jpg, .gif, .png, filmes SWFs).

Carregando variveis com AS3:


Primeiro precisamo criar nosso arquivo Txt contento como formato varivel=valor. Abra um "bloco de notas" ou seu editor de cdigos e salve como "arquivo.txt". Dentro deste arquivo, digite 3 variveis seguidos do seus respectivos valores: Obs.: Voc pode criar suas prprias variveis e valores que desejar. Neste exemplo criamos: site=Alvo+Web&categoria=Actionscript+3.0&comentario=carregar+variveis+no+AS3

Imagem 1: Criando nosso arquivo Txt. Tendo nosso arquivo .Txt criado, vamos ao Actionscript. Precisamos inicialmente utilizar duas classes, sendo elas: - URLRequest() responsvel por armazenar endereos externos. No nosso caso ser um "arquivo.txt"; - URLLoader() responsvel por "recuperar" dados/informaes externas. Crie um novo documento .Fla na verso Actionscript 3.0. Na primeira camada, selecionando o primeiro frame abra o painel de Window>Actions (atalho F9). Digite:
1 2 3 4 5 var url:URLRequest = new URLRequest( "arquivo.txt" ); var infoTxt:URLLoader = new URLLoader(); infoTxt.dataFormat = URLLoaderDataFormat.VARIABLES; infoTxt.load(url); infoTxt.addEventListener( Event.COMPLETE, leiaArquivoTxt );

Na primeira linha, criamos a varivel com nome url para a classe URLRequest(), nela iremos armazenar o endereo do nosso arquivo.txt. o endereo pode ser relativo (ex.: pasta/meuArquivo.txt) ou absoluto (ex.: http://www/pasta/meuArquivo.txt). Neste exemplo estamos trabalhando na mesma pasta do arquivo .Fla.

arquivo .Fla. Na segunda linha, criamos uma varivel com nome de infoTxt para a classe URLLoader(), que servir para recuperar informaes/dados externos que esto no nosso arquivo.txt. Na terceira linha, utilizamos a propriedade URLLoader.dataFormat que serve para formatar as informaes/dados externos, e "dizer" ao Flash qual tipo de arquivo ele ir interpretar. Se um tipo: Texto, Binrio ou Varivel. No nosso caso queremos ler varivel, ento definimos como URLLoaderDataFormat.VARIABLES. Quando definimos a propriedade dataFormat para o valor de DataFormat.VARIABLES, a propriedade data(que veremos mais a diante) ir ter um comportamento de um Objeto(Object), que ir "mapear" os nomes de variveis com seus respectivos valores do arquivo que estamos carregando. Por padro o Flash Player interpreta dados externos como Texto ( URLLoaderDataFormat.TEXT ) que so considerados como uma "String"(textos). Por este motivo, precisamos formatar os dados para encontrar e ler Variveis ( URLLoaderDataFormat.VARIABLES ). O Flash ir "buscar" por variveis que estiverem no arquivo informado no endereo que definimos pela classe URLRequest(). Na quarta linha, utilizamos o mtodo/funo URLLoader.load() que ir fazer o "download" do arquivo. Entre seus parenteses o parmetro solicitado URLRequest(). Como j definimos o endereo pela varivel url, apenas inserimos seu nome de varivel url entre seus parenteses do mtodo load(). Na quinta linha, adicionamos um ouvinte ( addEventListener ) para a varivel infoTxt da URLLoader(), que ir verificar pelo Evento quando for carregado por completo ( Event.COMPLETE ), chama uma funo que denominamos de leiaArquivoTxt. Esta funo ser responsvel por ler as variveis que definimos no arquivo.txt. Iremos criar est funo a seguir: Numa prxima linha digite:
6 function leiaArquivoTxt( evento:Event ):void{ 7 trace( infoTxt.data ); 8}

Teste o filme, (Ctrl+Enter). Voc ver na caixa de saida/output que ir aparecer exatamente todo o arquivo.txt com suas variveis e respectivos valores. Assim como na imagem 2 logo abaixo.

Imagem 2: lendo arquivo txt mostrado na caixa de sada (output) do Flash CS3. Criamos a funo leiaArquivoTxt que s acionada/executada quando o arquivo.txt for totalmente carregado pelo evento descrito no ouvinte que definimos logo acima. Entre seus parenteses denominamos um parmetro com nome evento do tipo Event ( evento:Event )Entre suas chaves digitamos o mtodo trace() dentro deste mtodo trace definimos a propriedade URLLoader.data, que como sabemos nossa varivel infoTxt.data que recebe todos os dados/informaes daquele arquivo que foi carregado (arquivo.txt). Agora, caso queira ler uma varivel especfica, basta informar como propriedade de URLLoader.data exatamente o nome da varivel que est dentro do arquivo.txt. Tendo est sintaxe:
URLLoader.data.variavel

Em nosso arquivo definimos trs variveis: site categoria comentario Ento podemos podemos escrever da seguinte forma: Ainda dentro da funo leiaArquivoTxt, apague a linha 7:
7 trace( infoTxt.data );

Altere por:
7 trace( infoTxt.data.site ); 8 trace( infoTxt.data.categoria ); 9 trace( infoTxt.data.comentario );

Teste o filme, (Ctrl+Enter). Voc ver agora na caixa de saida (output) que ir aparecer exatamente o valor referente a cada varivel que definimos no arquivo.txt. Seu cdigo todo deve ter ficado da seguinte maneira:
1 2 3 4 5 6 7 8 9 10 var url:URLRequest = new URLRequest( "arquivo.txt" ); var infoTxt:URLLoader = new URLLoader(); infoTxt.dataFormat = URLLoaderDataFormat.VARIABLES; infoTxt.load(url); infoTxt.addEventListener( Event.COMPLETE, leiaArquivoTxt ); function leiaArquivoTxt( evento:Event ):void { trace( infoTxt.data.site ); trace( infoTxt.data.categoria ); trace( infoTxt.data.comentario ); }

Imagem 3: carregando variveis no Flash CS3 utilizando AS3.

for in

Muitas vezes voc j saber os nomes das variaveis que deseja ler assim como nesse exemplo acima que voc acompanhou. Porm, em alguns casos podemos trabalhar com arquivos feitos por outros programadores e precisamos saber das variveis para ler o mesmo no Flash. Existe um meio bastante interessante e til que inmera todas a variveis existentes no arquivo que foi carregado. Para isto utiilzamos o loop for in veja um exemplo. Imagine que voc ainda no sabe todas as variaveis existentes no arquivo que criamos (arquivo.txt). Aproveitando este mesmo exemplo do arquivo .Fla e arquivo.txt, vamos recuperar todos os nomes das variveis seguido dos seus respectivos valores. Ainda dentro da funo leiaArquivoTxt, apague as linhas: 7, 8 e 9:
7 trace( infoTxt.data.site ); 8 trace( infoTxt.data.categoria ); 9 trace( infoTxt.data.comentario );

e Digite no lugar:
7 for( var propriedade:String in infoTxt.data ){ 8 trace( propriedade + " = " + infoTxt.data[propriedade] ); 9}

Dentro da Funo leiaArquivoTxt, criamos o loop forin. Todas as variveis do arquivo Txt armazenada na varivel que denominamos de propriedade do tipo String. E a cada vez que isso ocorre. Ou seja, cada vez que a propriedade procura os dados do arquivo.txt ( infoTxt.data ), executa o que estiver dentro da sua chaves { }. Este loop s termina quando recuprar todas as variveis do arquivo. Dentro da sua chaves { }, utilizamos o mtodo trace() para mostrar o resultado na caixa de sada. Como sabemos que a varivel propriedade recebe o nome de cada varivel do arquivo.txt, podemos utilizar uma espcie de Array [ ] para achar os valores de cada varivel, e dentro da [ ] colocamos o nome da variavel propriedade que definimos, ficando assim: infoTxt.data[ propriedade ] Com isso voc consegue recuperar os valores na caixa output: sintaxe: variavel = valor trace( propriedade + " = " + infoTxt.data[ propriedade ] );

Imagem 4: declarao de loop for in. para recuperar variaveis/valores de um arquivo.

Caixa de texto Dinmico


Se voc quer aplicar os valores das variveis uma caixa de texto dinmica (ex.: TextField). Basta fazer da seguinte forma. Suponhamos que neste caso voc j tenha criado trs caixas de texto dinmico, e inseridos os mesmo no stage (palco) com seus nomes de instncias denominadas como: campo1, campo2 e campo3. No lugar do mtodo trace() voc pode utilizar a propriedade TextField.text:
7 campo1.text = infoTxt.data.site; 8 campo2.text = infoTxt.data.categoria; 9 campo3.text = infoTxt.data.comentario;

Imagem 5: recuperando valores e mostrando em uma caixa de texto dinmico. Abraos e at a prxima! Rodrigo Gonalves Equipe Alvo Web O Contedo do Alvo Web Developers est licenciada sob uma Creative Commons Atribuio-Uso No-Comercial-Compartilhamento pela mesma Licena 2.5 Brasil License.

Categoria: ActionScript

18 respostas
1 gelinho // Mar 3, 2008 at 7:50 pm excelente post ainda mais agpra q a adobe resolveu radicalizar ah tu conhece algum link q contenha o manul ou guia do Action Script3 em portugues?? 2 Rodrigo // Mar 3, 2008 at 8:42 pm Valeu pela visita Gelinho. Voc vai encontrar maior contedo de AS3 em ingls. Por exemplo, o prprio Help do Flash CS3 (atalho F1), j tem uma vasta documentao que ajuda bastante entender como utilizar seus mtodos, propriedades, parmetros de cada Classe. J existem no mercado excelentes livros que ajudam praticar, mas a maioria em ingls. Contedos em portugus, por enquanto ainda mais difcil achar sobre AS3.

J existem no mercado excelentes livros que ajudam praticar, mas a maioria em ingls. Contedos em portugus, por enquanto ainda mais difcil achar sobre AS3. Se tiver sugestes, nos avise. Abraos. 3 Warley // Mar 11, 2008 at 7:28 pm Ol Rodrigo, adorei a matria, pois sou um amante de flash e j tive esse tipo de dificuldade com variveis de texto, porm, gostaria de saber, como carregar variveis do php para o Flash CS3, ou melhor, o que quero que o flash execute um script php e leia a resposta, exemplo: como fao para executar este script ou outro, este s um exemplo, usando o cs3. Por favor se souber me envie algo pelo e-mail amo_o_flash@hotmail.com, eu uso o Flash CS3 e o PHP5. Por favor me ajude, e se precisar de algo me avise, talves eu saiba ou pelo menos saiba te indicar onde achar, desde de j obrigado! 4 Rodrigo // Mar 12, 2008 at 10:41 am Valeu Warley, No momento no conheo sobre php. Preciso estudar sobre isso tambm. Mas posso adiantar que o Flash precisa encontrar variveis para mostrar contedos(valores) no arquivo flash. Utilizando o mesmo exemplo do nosso artigo acima. Ao invs de carregar um arquivo .Txt voc carrega uma pgina php. Voc s precisa que este Php escreva as variveis e seus valores ficando parecido com formato de .txt, mas no seu caso um php que pode fazer essas variveis com valores. Basta voc direcionar no Flash o nome da varivel que est no PHP para mostrar o valor da varivel no Flash. Ex sintaxe da classe URLLoader(): variavelURLLoader.data.suaVariavelPhp Deve existir outras maneiras de carregar um Script Php, Asp. Mas no momento desconheo. Preciso estudar sobre isso tambm. Se souber de algo interessante sobre este tema, nos avise. Abraos. 5 der Varela // Set 13, 2008 at 11:06 am Ol, minha dvida se encontra na seguinte linha: var url:URLRequest = new URLRequest( arquivo.txt ); e se eu quero capturar no de um arquivo txt, e sim de uma pgina aspx por exemplo, como devo proceder? 6 Rodrigo // Set 14, 2008 at 9:25 pm Ol der, Valeu pela pergunta. Sim muito utile me ajuda tambm aprender sobre isso. Bom, no conheo sobre programao Asp.net. No posso dizer sobre a parte tcnica sobre isso no momento. Mas ao flash, ele precisa encontrar a seguinte sintaxe: Variavel = valor Por exemplo, fiz um teste com PHP, talvez ajude tirar duvida ou dar alguma idia do que voc precisa fazer. Voc pode fazer um arquivo ASP da mesma forma que o PHP fez. Deixo claro que no sei quase nada sobre PHP no momento. Conheo apenas o bsico mesmo pra entender o que o Flash precisa encontrar. Mas a idia saber como Flash se conecta com PHP, ASP, etc. Acesse esse endereo no seu navegador, isso que o flash precisa ver e saber pra funcionar: http://www.alvoweb.com/tutorial/variavel.php Que mostra na tela o seguinte sintaxe: Variavel = valor O script php que montou isso bastante simples:
1 2 3 4 5 6 7 8 <?php // variavel que recebe um valor //este valor est fixo, mas pode receber um valor de banco de dados. $meuValor = "meu valor"; //isso que o usurio ir ver na tela escrevendo o valor echo "minhaVariavel=". "$meuValor"; ?>

Obs: S cuidado pra no usar html junto com cdigo, neste caso deixe apenas o script pra escrever: varivel = valor. Se tiver mais variaveis, acrescente o carctere & para seperar de uma variavel de outra: Ex: variavel1=valor1&variavel2=valor2 No flash: Crie um novo arquivo no Flash para testar esse script. Flash tem que ser na verso AS3. No 1 frame, abra o painel de Actions e digite esse cdigo abaixo.

No 1 frame, abra o painel de Actions e digite esse cdigo abaixo. CDIGO AS3
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 //criamos campo de texto dinmico var campo:TextField = new TextField(); //adicionamos o campo de texto ao palco addChild(campo); //criamos variavel que recebe o endereo php var urlPhp:URLRequest = new URLRequest("http://www.alvoweb.com/tutorial/variavel.php"); //criamos variavel que ir ler dados externos vindo do php var loaderPhp:URLLoader = new URLLoader( urlPhp ); //por padro o flash interpreta dados do tipo Texto, precisamos avisar que os dados sero do tipo Variaveis. loaderPhp.dataFormat = URLLoaderDataFormat.VARIABLES; //acrescentamos ouvinte que avisa quando carregar por completo o arquivo, ir chamar/executar a funo leiaPhp() loaderPhp.addEventListener(Event.COMPLETE, leiaPhp); //criamos funo que l a variavel do arquivo php; function leiaPhp(e:Event):void{ //aparece no campo de texto dinamico o valor da variavel campo.text = loaderPhp.data.minhaVariavel; }

Depois basta testar o filme(Ctrl + Enter) pra ver o resultado. Deve mostrar na tela o valor da variavel. No sei se consegui tirar sua dvida, mas acredito que voc deve preparar o seu arquivo script ASP para escrever sempre essa sintaxe: Variavel = valor E depois com esse resultado, o Flash reconhece as variaveis que quiz buscar e mostra o valor de cada variavel que voc buscou. Abraos e boa sorte no seu projeto. 7 Claudio // Nov 28, 2008 at 11:49 am Ol, Primeiro parabns pelo post, no encontrei algo parecido em AS3 sobre isso. Fiz o cdigo das duas maneiras citadas. O programa conseguiu pegar o valor da varivel, mas retorna um erro e por isso no executa a aplicao. O erro este: TypeError: Error #2007: Parameter url must be non-null. at flash.net::URLStream/load() at flash.net::URLLoader/load() at curve_gallery_fla::MainTimeline/curve_gallery_fla::frame1() o cdigo funcionou em arquivo teste, mas com o restante das limhas do programa ele retorna esse erro. Algum tem idia do que pode ser isso? Abraos. 8 Rodrigo // Nov 28, 2008 at 1:23 pm Claudio tudo bem, Se puder, coloca aqui o cdigo pra ver se conseguimos ajudar. Pela mensagem parece que o erro deve estar algo relacionado com a declarao da varivel do tipo URLLoader e URLStream. Dica: Voc pode conhecer forum mais especfico sobre esses erros. Apenas selecionando a mensagem de erro que surge na caixa output do flash, como exemplo: TypeError: Error #2007: Parameter url must be non-null. e colocando essa mensagem no busca, como o Google. Ir surgir alguns foruns com erros semelhantes e que pode ajudar esclarecer sobre cada tipo de erro, as vezes alguns mostram o problema e soluo. A maioria contedo em ingls. Abraos. 9 Claudio // Nov 28, 2008 at 6:10 pm O cdigo grande: import org.papervision3d.scenes.*; import org.papervision3d.cameras.*; import org.papervision3d.objects.*; import org.papervision3d.materials.*; import caurina.transitions.*; var container_x:Number = stage.stageWidth * 0.5; var container_y:Number = stage.stageHeight * 0.5 + 160; var container:Sprite = new Sprite(); container.x = container_x; container.y = container_y;

container.y = container_y; addChild(container); var scene:Scene3D = new MovieScene3D(container); var cam:Camera3D = new Camera3D(); cam.zoom = 6; tn_url_target.visible = false; tn_title.text = ; tn_desc.text = ; tn_url.text = ; loading_info.text = ; url_button.visible = false; var no_of_ring:Number = 3; var angle:Number = 0; var p_dict:Dictionary = new Dictionary(); var pa:Array = new Array(); var filename_list = new Array(); var url_list = new Array(); var url_target_list:Array = new Array(); var title_list = new Array(); var description_list = new Array(); var folder:String = photos/; var i:Number; var total:Number; var flashmo_xml:XML = new XML(); var pic_loader:Loader = new Loader(); var xml_loader:URLLoader = new URLLoader(); var file_xml:String; //criamos variavel que recebe o endereo php var urlPhp:URLRequest = new URLRequest(vars.php); //criamos variavel que ir ler dados externos vindo do php var loaderPhp:URLLoader = new URLLoader( urlPhp ); //por padro o flash interpreta dados do tipo Texto, precisamos avisar que os dados sero do tipo Variaveis. loaderPhp.dataFormat = URLLoaderDataFormat.VARIABLES; //acrescentamos ouvinte que avisa quando carregar por completo o arquivo, ir chamar/executar a funo leiaPhp() loaderPhp.addEventListener(Event.COMPLETE, leiaPhp); //criamos funo que l a variavel do arquivo php; function leiaPhp(e:Event):void{ //aparece no campo de texto dinamico o valor da variavel file_xml = loaderPhp.data.gallery_cookie; } xml_loader.load(new URLRequest(file_xml)); xml_loader.addEventListener(Event.COMPLETE, create_thumbnail); function create_thumbnail(e:Event):void { flashmo_xml = XML(e.target.data); total = flashmo_xml.thumbnail.length(); var angle_per:Number = Math.PI * 2 * no_of_ring / total; for( i = 0; i 10 Rodrigo // Nov 28, 2008 at 11:48 pm Claudio, No veio cdigo inteiro. Acho que o post de comentrio no aceitou ou sem querer faltou copiar o resto do cdigo. =/ Bom, no tenho como eu testar, aqui at porque no estou com as classes que voc usa. Mas, s tentei entender o cdigo e lgica dele, para possivelmente tentar achar onde pode estar o tal erro que acredito ser na variavel URLLoader quando tenta achar o tal XML. Deixei no cdigo comentario nas parte que acho que pode estar acontecendo esse erro. No sei se isso ajuda, mas o que pude entender aqui no momento.
1 2 3 4 5 6 7 8 9 import import import import import org.papervision3d.scenes.*; org.papervision3d.cameras.*; org.papervision3d.objects.*; org.papervision3d.materials.*; caurina.transitions.*;

var container_x:Number = stage.stageWidth * 0.5; var container_y:Number = stage.stageHeight * 0.5 + 160; var container:Sprite = new Sprite();

10 container.x = container_x;

10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80

container.x = container_x; container.y = container_y; addChild(container); var scene:Scene3D = new MovieScene3D(container); var cam:Camera3D = new Camera3D(); cam.zoom = 6; tn_url_target.visible = false; tn_title.text = ""; tn_desc.text = ""; tn_url.text = ""; loading_info.text = ""; url_button.visible = false; var var var var var var var var var var var var no_of_ring:Number = 3; angle:Number = 0; p_dict:Dictionary = new Dictionary(); pa:Array = new Array(); filename_list = new Array(); url_list = new Array(); url_target_list:Array = new Array(); title_list = new Array(); description_list = new Array(); folder:String = "photos/"; i:Number; total:Number;

//************************************* //************************************* //var flashmo_xml:XML = new XML(); //aqui est iniciando a instncia e "talvez" isso surge algum erro com que vc quer fazer com varia var flashmo_xml:XML; //s declara a variavel e depois inicia a instncia dentro da funo create_thumbnail() var pic_loader:Loader = new Loader(); var xml_loader:URLLoader = new URLLoader(); //************************************* //************************************* //aqui sua variavel que VAI receber o valor vindo de uma variavel do php. certo? var file_xml:String; var urlPhp:URLRequest = new URLRequest("vars.php"); var loaderPhp:URLLoader = new URLLoader( urlPhp ); loaderPhp.dataFormat = URLLoaderDataFormat.VARIABLES; loaderPhp.addEventListener(Event.COMPLETE, leiaPhp); //criamos funo que l a variavel do arquivo php; function leiaPhp(e:Event):void{ //************************************* //************************************* //AQUI S CADASTROU O VALOR DA VARIAVEL VINDA DO PHP NA VARIAVEL DO TIPO STRING "file_xml" file_xml = loaderPhp.data.gallery_cookie; //tenta colocar pra carregar o xml aqui dentro dessa funo que l o php,... //talvez d tempo pra conseguir obter as informaes do php e interagir com seu xml xml_loader.load(new URLRequest(file_xml)); }

//<<<<< AQUI provavalmente est surgindo erro, parece que quando //tenta achar o valor da sua variavel do php, no consegue puxar o endereo do tal xml xml_loader.addEventListener(Event.COMPLETE, create_thumbnail); //quando completo o carregamento do xml(endereo que vem da variavel p //essa funo est imcompleta... function create_thumbnail(e:Event):void { //coloqu eo operador "new" quando criar XML com iso voc cria uma instncia dentro da funo flashmo_xml = new XML(e.target.data); total = flashmo_xml.thumbnail.length(); //puxa quantidde de n xml var angle_per:Number = Math.PI * 2 * no_of_ring / total; //...aqui j no sei mais vei incopleto o cdigo for( i = 0; i

Voc tentou procurar nos foruns referente ao erro? S fazer aquele esquema que te falei no outro comentario, pegar a mensagem de erro procurar no google TypeError: Error #2007: Parameter url must be non-null. que vai aparecer foruns comentando sobre o tal erro. Talvez ajude-o a achar porque surge o erro. Geralmente esses forum tem mais suporte pra erros mais difceis com esse. boa sorte. abraos. 11 Rgis // Jan 27, 2009 at 5:42 pm package { // supondo variavel &ldap=blah blah // instancie myMap:Map = new Map() import flash.events.*; import flash.net.*; public class Map { public function Map(file:String):void {

public function Map(file:String):void { var url:URLRequest = new URLRequest(file); var infoTxt:URLLoader = new URLLoader(); infoTxt.dataFormat = URLLoaderDataFormat.TEXT; infoTxt.load(url); infoTxt.addEventListener(Event.COMPLETE, leiaArquivoTxt); function leiaArquivoTxt( evt:Event ):void { var urlVariables:URLVariables = new URLVariables(infoTxt.data); trace(Variavel ldap: +urlVariables.ldat); } } } } 12 Rgis // Jan 27, 2009 at 5:44 pm Perdo, s uma correo: instanciar dessa forma: var myMap:Map = new Map(arquivo.txt); 13 Rodrigo // Jan 27, 2009 at 6:26 pm Bacana Rgis. Gostei da sua iniciativa. A idia essa mesma. No seu exemplo s modifiquei a maneira como so declaradas as variveis e funes, inserindo tambm com acesso de modificadores(public, private). O modificador private evita que o usurio tenha acesso as variveis e funes que no so pra serem acessadas por ele, e sim, acessadas apenas pela prpria classe. No que a maneira como o seu cdigo foi escrito esteja errado, testei e funcionou tranquilo. Mas s uma conveno adotado por muitos que facilita manter um padro na escrita do AS3 e tambm ajuda e muito na leitura do cdigo. Fica mais organizado.
1 package { 2 /* Crie um arquivo .txt tendo variavel=valor 3 * Ex: ldap=blah blah 4 * 5 * instancie: 6 * myMap:Map = new Map("arquivo.txt") 7 */ 8 9 //importa as classes necessrias 10 import flash.events.Event; 11 import flash.net.URLLoader; 12 import flash.net.URLRequest; 13 import flash.net.URLVariables; 14 15 public class Map { 16 //declara variaveis aqui! 17 //variaveis privadas, s podem ser acessadas dentro da classe 18 private var _url:URLRequest; 19 private var _infoTxt:URLLoader; 20 private var _urlVariables:URLVariables; 21 22 //funo construtora da classe 23 public function Map( _file:String ):void { 24 _url = new URLRequest( _file ); 25 _infoTxt = new URLLoader(); 26 _infoTxt.load( _url ); 27 _infoTxt.addEventListener( Event.COMPLETE, leiaArquivoTxt ); 28 } 29 30 //funo privada, s pode ser acessada dentro da classe 31 private function leiaArquivoTxt( evt:Event ):void { 32 _urlVariables = new URLVariables( _infoTxt.data ); 33 trace("Variavel ldap: " + _urlVariables.ldap); 34 } 35 } 36 }

Sugiro utilizar o software FlashDevelop, gratuito e timo para programar classes! ;D http://www.flashdevelop.org/community/ Aqui mostra um vdeo como pode configur-lo. http://br.youtube.com/watch?v=0_JaKaFwfck Abraos. 14 marcio cardoso // Ago 27, 2009 at 6:15 pm eu gostei muito de artigo,e muito bem explicado, pois eu sou emiciante na area e mi apaixonei pelo flash pelo o pouco que eu vi, podemos cria muitas coisa.e gostaria de mi aprofundar mais eu conhecimento. 15 Pedro Favaretto // Nov 13, 2009 at 3:42 pm Fala rodrigo muito show esse portal kara. gostaria de saber como fazer para selecionar registros de MYSQL e recebelos no flash e inserir em um textarea ou datagrid no consegui achar nada disso na WEB vlw abraoO!

vlw abraoO! 16 Rodrigo // Nov 13, 2009 at 4:05 pm Opa, valeu Pedro pela visita ao site. Ento, te dou os caminhos das pedras. OK? Meu forte no linguagem side-server (PHP;ASP, etc). No posso te ajudar nessa parte no momento. Mas basicamente a idia seria +ou- essas: Um scrript-server-side(PHP/ASP, etc) conecta com banco de dados e escreve um arquivo como por exemplo um TXT ou XML(mais flexvel!) contento todas as informaes necessrias que voc quer usar. Depois de definida essa estrutura do seu arquivo XML, no Flash, carrega esse XML(arquivo gerado pelo PHP/ASP,) e, voc manipula o arquivo XML usando o Flash como precisar, geralmente pra gerar ilsta usando um loop for ou loop for each. Caso no conhea sobre XML, esse artigo pode ser util. http://www.alvoweb.com/xml-externo-com-as3/ Na net voc acha alguns exemplos(maioria em ingls). Segue alguns que pode ser teis conhecer como referncias pra fazer essa conexo entre Flash e Banco de dados: http://imasters.uol.com.br/artigo/5987/montando_um_sistema_de_tickers_com_flash__xml__php__mysql Uma lista de artigos na parte PHP/XML & Flash: http://www.kirupa.com/web/index.htm Se quer algo mais slido e alm, sugiro um livro como apoio. Flash and PHP Bible Por Matthew Keefe http://books.google.com.br/books?id=Q5u7HgAACAAJ&dq Abrao. 17 Luiz Claudio // Nov 24, 2009 at 10:23 pm Caro Rodrigo, Por favor , ajude um iniciante. Tentei seguir seus passos mais da minha forma. Meu action apresenta erro 1120, na linha var loader:URLLoader = URLLoader(event.target); Junto envio o meu cdigo para sua analise. No mais parabns a voc e a AlvoWeb. Simplicidade, solidez e agilidade tudo que precisamos no nosso mundinho da Internet. stop(); var filename:String=txt/missao.txt; var carregar:URLLoader = new URLLoader(); var loader:URLLoader = URLLoader(event.target); var requestURL:URLRequest = new URLRequest(); carregar.load(requestURL); carregar.addEventListener(Event.COMPLETE,completeHandler); function completeHandler(e:Event):void { var pageText:String = loader.data; this.pageText_txt.text = pageText; } botaoM1.addEventListener(MouseEvent.CLICK, carregaTXT1); function carregaTXT1(event:MouseEvent):void { loadFile(txt/missao.txt); } botaoM2.addEventListener(MouseEvent.CLICK, carregaTXT2); function carregaTXT2(event:MouseEvent):void { loadFile(txt/crenca.txt); } botaoM3.addEventListener(MouseEvent.CLICK, carregaTXT3); function carregaTXT3(event:MouseEvent):void { loadFile(txt/atuacao.txt); } botaoM4.addEventListener(MouseEvent.CLICK, carregaTXT4); function carregaTXT4(event:MouseEvent):void { loadFile(txt/politica.txt); }

} 18 Adalberto // Dez 30, 2009 at 1:51 am Estou tentando fazer funcionar o IOErrorEvent porem no codigo abaixo quando uso o infoTxt.dataFormat=URLLoaderDataFormat.VARIABLES; da erro, quando edito o mesmo ele funciona e avisa da falta do arquivo, onde estou errando??? var url:URLRequest=new URLRequest(arquivo.txt); var infoTxt:URLLoader = new URLLoader(); infoTxt.dataFormat=URLLoaderDataFormat.VARIABLES; infoTxt.load(url); infoTxt.addEventListener(IOErrorEvent.IO_ERROR, infoError); function infoError(e:IOErrorEvent):void { trace(Arquivo nao encontrado); } infoTxt.addEventListener( Event.COMPLETE, leiaArquivoTxt ); function leiaArquivoTxt( e:Event ):void { trace( infoTxt.data.autoriza ); trace( infoTxt.data.idioma ); trace( infoTxt.data.chat ); }

Faa um comentrio
Nome email Site Palavra de Anti-spam: (Requerido)*
Para validar seu comentario, por favor digite a palavra que aparece na imagem.

Enviar

WordPress database error: [Table 'wp_cas_count' is read only]


INSERT INTO wp_cas_count (id) VALUES (NULL)

WordPress database error: [Table 'wp_cas_image' is read only]


INSERT INTO wp_cas_image (id, createtime, word) VALUES (0, 1316552538, 'rent')

WordPress database error: [Table 'wp_cas_count' is read only]


DELETE FROM wp_cas_count WHERE id = 0

Busca contedo
Escreva aqui + Enter

Categorias
Dreamweaver Flash ActionScript Animao Notcias Photoshop PHP Tableless e CSS Windows Movie Maker Wordpress
Search

Parceiros

Parceiros
Diretrio Brasil Fernando de Frana Marcus Crisostomo Next4 Orlando Leite Rodrigo Gonalves Silici0 Tiago Braga

Portais
ASP Brasil Flash Masters gotoAndLearn GUJS - Javascript Imasters Joomla Brasil Maujor MX Studio Ponto Flash Portal Java Ruby on BR Ruby on Rails - BR Ruby-br.org Script Brasil Super ASP Tableless - CSS W3 Schools Webmasters Online Wordpress Brasil Wordpress.org - Br

Recomendaes
Email Standards Project HexoSearch W3C - Web Standards

Postes recentes
Bsico sobre Eventos no AS3 HexoSearch - Search Engine dedicado para contedo Flash e ActionScript Livros: Flash e ActionScript Quantidade de posts na index do seu wordpress Desabilitar objetos interativos com enabled e mouseEnabled AS3 2007 - 2011 Alvo Web Powered by Wordpress - Hosted by Next4 sites. Todos os direitos reservados. All rights reserved.