<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>ALK               Armando Leopoldo Keller</title>
	<atom:link href="http://alkeller.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://alkeller.wordpress.com</link>
	<description>Actionscript e  outras coisas</description>
	<lastBuildDate>Thu, 16 Jun 2011 20:47:29 +0000</lastBuildDate>
	<language>pt-br</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='alkeller.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>ALK               Armando Leopoldo Keller</title>
		<link>http://alkeller.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://alkeller.wordpress.com/osd.xml" title="ALK               Armando Leopoldo Keller" />
	<atom:link rel='hub' href='http://alkeller.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Movendo o Blog</title>
		<link>http://alkeller.wordpress.com/2009/04/10/movendo-o-blog/</link>
		<comments>http://alkeller.wordpress.com/2009/04/10/movendo-o-blog/#comments</comments>
		<pubDate>Fri, 10 Apr 2009 22:42:37 +0000</pubDate>
		<dc:creator>alksk8</dc:creator>
				<category><![CDATA[AS 2.0]]></category>

		<guid isPermaLink="false">http://alkeller.wordpress.com/?p=46</guid>
		<description><![CDATA[Bom, acho que ja era tempo de mudar o blog de lugar. Novo endereço: http://armandokeller.com/blog apartir de hoje eu só postarei no endereço novo. Lembro que copiei boa parte dos posts antigos para o novo endereço. Publicado emAS 2.0<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=alkeller.wordpress.com&amp;blog=2403732&amp;post=46&amp;subd=alkeller&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Bom, acho que ja era tempo de mudar o blog de lugar.</p>
<p>Novo endereço: <a title="http://armandokeller.com/blog" href="http://armandokeller.com/blog" target="_self">http://armandokeller.com/blog</a></p>
<p>apartir de hoje eu só postarei no endereço novo.</p>
<p>Lembro que copiei boa parte dos posts antigos para o novo endereço.</p>
<br />Publicado emAS 2.0  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/alkeller.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/alkeller.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/alkeller.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/alkeller.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/alkeller.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/alkeller.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/alkeller.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/alkeller.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/alkeller.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/alkeller.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/alkeller.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/alkeller.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/alkeller.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/alkeller.wordpress.com/46/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=alkeller.wordpress.com&amp;blog=2403732&amp;post=46&amp;subd=alkeller&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://alkeller.wordpress.com/2009/04/10/movendo-o-blog/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/92cf4f8bd8ab85b9a50c99c1c7b0716b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">alksk8</media:title>
		</media:content>
	</item>
		<item>
		<title>Conexão AS3 com python via socket (simplificado)</title>
		<link>http://alkeller.wordpress.com/2009/01/17/conexo-as3-com-python-via-socket-simplificado/</link>
		<comments>http://alkeller.wordpress.com/2009/01/17/conexo-as3-com-python-via-socket-simplificado/#comments</comments>
		<pubDate>Sat, 17 Jan 2009 17:30:41 +0000</pubDate>
		<dc:creator>alksk8</dc:creator>
				<category><![CDATA[AIR]]></category>
		<category><![CDATA[AS 3.0]]></category>
		<category><![CDATA[conexao]]></category>
		<category><![CDATA[Flash geral]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[Socket]]></category>
		<category><![CDATA[Actionscript 3]]></category>
		<category><![CDATA[conexão]]></category>

		<guid isPermaLink="false">http://alkeller.wordpress.com/2009/01/17/conexo-as3-com-python-via-socket-simplificado/</guid>
		<description><![CDATA[Algumas vezes me perguntei como fazer algumas coisas mais complexas em AIR de uma maneira rapida e segura, como por exemplo pegar informaçoes do usuario, conectar com um banco de dados (sem ser o nativo do AIR) como oracle,mssql… executar linha de comando, e outras coisas que só seriam possiveis utilizando alguma outra linguagem mais poderosa. Levando em conta que isto realmente era necessario para aumentar o “poder” do AIR e que o AMF fazia algo parecido, só que para a internet, resolvi criar uma classe em AS e uma função em Python que facilita a comunicação entre os dois (deixe o servidor python rodando de fundo e chame as funçoes dele :D )<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=alkeller.wordpress.com&amp;blog=2403732&amp;post=41&amp;subd=alkeller&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Algumas vezes me perguntei como fazer algumas coisas mais complexas em AIR de uma maneira rapida e segura, como por exemplo pegar informaçoes do usuario, conectar com um banco de dados (sem ser o nativo do AIR) como oracle,mssql… executar linha de comando, e outras coisas que só seriam possiveis utilizando alguma outra linguagem mais poderosa. Levando em conta que isto realmente era necessario para aumentar o “poder” do AIR e que o AMF fazia algo parecido, só que para a internet, resolvi criar uma classe em AS e uma função em Python que facilita a comunicação entre os dois (deixe o servidor python rodando de fundo e chame as funçoes dele <img src='http://s0.wp.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  )</p>
<p>Primeiro a classe Python.as que pode ser baixada <a href="http://cid-cd79b3b43841b5ae.skydrive.live.com/self.aspx/.Public/Python.as">aqui</a> :</p>
<div class="csharpcode">
<pre class="alt">package</pre>
<pre>{</pre>
<pre class="alt">    import com.adobe.serialization.json.JSON;</pre>
<pre class="alt">    import flash.net.Socket;</pre>
<pre class="alt">    <span class="rem">/**</span></pre>
<pre><span class="rem">     * Classe para conexao com python utilizando socket</span></pre>
<pre class="alt"><span class="rem">     * @author    Armando Leopoldo Keller - (http://alkeller.wordpress.com) - alkeller@live.de</span></pre>
<pre><span class="rem">     */</span></pre>
<pre class="alt">    <span class="kwrd">public</span> <span class="kwrd">class</span> Python extends Socket</pre>
<pre>    {</pre>
<pre class="alt">        <span class="rem">// TODO: Implementar um metodo de retorno, verificando o tipo do retorno, e passando como parametro na funcao associada</span></pre>
<pre class="alt">        <span class="rem">/**</span></pre>
<pre><span class="rem">         * Cria um novo Socket</span></pre>
<pre class="alt"><span class="rem">         * @param host    Host onde esta o socket</span></pre>
<pre><span class="rem">         * @param port    Porta que esta o socket</span></pre>
<pre class="alt"><span class="rem">         * @see flash.net.Socket</span></pre>
<pre><span class="rem">         * @usage    var p:Python = new Python("10.1.1.23",2727);</span></pre>
<pre class="alt"><span class="rem">         */</span></pre>
<pre>        <span class="kwrd">public</span> function Python(host:String=<span class="kwrd">null</span>, port:<span class="kwrd">uint</span>=0)</pre>
<pre class="alt">        {</pre>
<pre>            super(host, port);</pre>
<pre class="alt">            host = <span class="kwrd">null</span>;</pre>
<pre>            port = 0;</pre>
<pre class="alt">        }</pre>
<pre class="alt">        <span class="rem">/**</span></pre>
<pre><span class="rem">         * Chama uma funcao do python se o socket estiver conectado </span></pre>
<pre class="alt"><span class="rem">         * @param func    Nome da funcao a ser chamada no python</span></pre>
<pre><span class="rem">         * @param args    Argumentos a serem chamados no python</span></pre>
<pre class="alt"><span class="rem">         * @usage p.call("teste",{um:1,dois:2,tres:3});</span></pre>
<pre><span class="rem">         * @usage p.call("teste");</span></pre>
<pre class="alt"><span class="rem">         */</span></pre>
<pre>        <span class="kwrd">public</span> function call(func:String,args:Object=<span class="kwrd">null</span>):<span class="kwrd">void</span></pre>
<pre class="alt">        {</pre>
<pre>            <span class="kwrd">if</span>(<span class="kwrd">this</span>.connected)</pre>
<pre class="alt">            {</pre>
<pre>                <span class="kwrd">this</span>.flush();</pre>
<pre class="alt">                var obj:Object = <span class="kwrd">new</span> Object();</pre>
<pre>                obj[<span class="str">"funcao"</span>] = func;</pre>
<pre class="alt">                <span class="kwrd">for</span>(var i:* <span class="kwrd">in</span> args)</pre>
<pre>                {</pre>
<pre class="alt">                    <span class="kwrd">if</span>(args[i] <span class="kwrd">is</span> String) args[i] = <span class="str">"'"</span>+args[i]+<span class="str">"'"</span></pre>
<pre>                    obj[i]=args[i];</pre>
<pre class="alt">                }</pre>
<pre>                <span class="kwrd">this</span>.writeUTFBytes(JSON.encode(obj));</pre>
<pre class="alt">                obj = <span class="kwrd">null</span>;</pre>
<pre>            }</pre>
<pre class="alt">            <span class="kwrd">else</span></pre>
<pre>                <span class="kwrd">throw</span> <span class="kwrd">new</span> Error(<span class="str">"Voce deve estar conectado ao socket."</span>)</pre>
<pre class="alt">            <span class="kwrd">this</span>.flush();</pre>
<pre>        }</pre>
<pre class="alt">    }</pre>
<pre>}</pre>
</div>
<p>Depois é necessario a função em python que vai reconhecer o que está sendo chamado pelo flash, o arquivo pode ser baixado <a href="http://cid-cd79b3b43841b5ae.skydrive.live.com/self.aspx/.Public/JMF.py">aqui</a> :</p>
<div class="csharpcode">
<pre class="alt">import json;</pre>
<pre class="alt">def executar(objeto):</pre>
<pre>    __arr__ = [];</pre>
<pre class="alt">    __str__ = <span class="str">""</span>;</pre>
<pre>    obj = json.loads(objeto);</pre>
<pre class="alt">    __str__ = str(obj[<span class="str">"funcao"</span>])+<span class="str">"("</span>;</pre>
<pre>    obj.pop(<span class="str">"funcao"</span>);</pre>
<pre class="alt">    <span class="kwrd">if</span> len(obj.keys()) &gt;= 1:</pre>
<pre>        <span class="kwrd">for</span> k <span class="kwrd">in</span> obj:</pre>
<pre class="alt">            __arr__.append(str(k)+<span class="str">"="</span>+str(obj[k]));</pre>
<pre>        <span class="kwrd">for</span> x <span class="kwrd">in</span> xrange(len(__arr__)-1):</pre>
<pre class="alt">            __str__ = __str__+__arr__[x]+<span class="str">","</span>;</pre>
<pre>        __str__ = __str__ +__arr__[len(__arr__)-1]+<span class="str">")"</span>;</pre>
<pre class="alt">    <span class="kwrd">else</span>:</pre>
<pre>        __str__ = __str__+<span class="str">")"</span>;</pre>
<pre class="alt">    <span class="kwrd">return</span> __str__;</pre>
</div>
<p>Agora precisamos de um “servidor socket” rodando de fundo com as funçoes a serem chamadas, que pode ser baixado <a href="http://cid-cd79b3b43841b5ae.skydrive.live.com/self.aspx/.Public/ServidorPython.py">aqui</a> :</p>
<div class="csharpcode">
<pre class="alt">import socket</pre>
<pre>import threading</pre>
<pre class="alt">import json</pre>
<pre>from JMF import executar</pre>
<pre><span class="kwrd">class</span> ClientThread ( threading.Thread ):</pre>
<pre class="alt">    def __init__ ( self, channel, details ):</pre>
<pre>        self.channel = channel</pre>
<pre class="alt">        self.details = details</pre>
<pre>        threading.Thread.__init__ ( self );</pre>
<pre>    def run ( self ):</pre>
<pre class="alt">        print <span class="rem">'Conexao recebida: ', self.details [ 0 ]</span></pre>
<pre>        self.channel.send ( <span class="str">"resposta vinda do python"</span> )</pre>
<pre class="alt">        <span class="kwrd">for</span> x <span class="kwrd">in</span> xrange ( 10 ):</pre>
<pre>            <span class="kwrd">string</span> = self.channel.recv ( 1024 )</pre>
<pre class="alt">            self.interpretaComando(<span class="kwrd">string</span>)</pre>
<pre>        self.channel.close();</pre>
<pre class="alt">        print <span class="rem">'Conexao fechada: ', self.details [ 0 ]</span></pre>
<pre class="alt">    def interpretaComando(self,<span class="kwrd">string</span>):</pre>
<pre>        eval(<span class="str">"self."</span>+executar(str(<span class="kwrd">string</span>)));</pre>
<pre>    def testar(self,arg1,arg2):</pre>
<pre class="alt">        print <span class="str">"Chamou testar: "</span>+str(arg1)+<span class="str">","</span>+str(arg2);</pre>
<pre>        self.channel.send(<span class="str">"Chamou testar: "</span>+str(arg1)+<span class="str">","</span>+str(arg2));</pre>
<pre>    def pegaVariaveis(self):</pre>
<pre class="alt">        print <span class="str">"chamou pegaVariaveis"</span></pre>
<pre>        self.channel.send(<span class="str">"chamou pegaVariaveis"</span>);</pre>
<pre>    def pegarArray(self):</pre>
<pre class="alt">        print <span class="str">"Chamou pegar Array"</span>;</pre>
<pre>        arr = [<span class="rem">'a','b','c',1,2,3];</span></pre>
<pre class="alt">        txt = json.dumps(arr);</pre>
<pre>        self.channel.send(txt);</pre>
<pre>    def pegarObj(self):</pre>
<pre class="alt">        print <span class="str">"Chamou pegar Objeto"</span>;</pre>
<pre>        teste = {}</pre>
<pre class="alt">        teste[<span class="str">"item1"</span>]   =   <span class="str">"Primeiro item"</span>;</pre>
<pre>        teste[<span class="str">"item2"</span>]   =   <span class="str">"Segundo item"</span>;</pre>
<pre class="alt">        teste[<span class="str">"numero"</span>]  =   2;</pre>
<pre>        self.channel.send(json.dumps(teste));</pre>
<pre># Inicia o servidor</pre>
<pre class="alt">server = socket.socket ( socket.AF_INET, socket.SOCK_STREAM )</pre>
<pre>server.bind ( ( socket.gethostbyname(socket.gethostname()), 2727 ) )</pre>
<pre class="alt">server.listen ( 5 )</pre>
<pre class="alt">print <span class="str">"Iniciando servidor..."</span></pre>
<pre class="alt"><span class="kwrd">while</span> <span class="kwrd">True</span>:</pre>
<pre>    channel, details = server.accept()</pre>
<pre class="alt">    ClientThread ( channel, details).start()</pre>
</div>
<div class="csharpcode">Pronto, agora só falta uma aplicação de exemplo chamando estas funçoes, que pode ser baixada <a href="http://cid-cd79b3b43841b5ae.skydrive.live.com/self.aspx/.Public/PyFlex.mxml">aqui</a> :</div>
<div class="csharpcode">
<pre class="alt">&lt;?xml version=<span class="str">"1.0"</span> encoding=<span class="str">"utf-8"</span>?&gt;</pre>
<pre>&lt;mx:WindowedApplication applicationComplete=<span class="str">"iniciar()"</span> xmlns:mx=<span class="str">"http://www.adobe.com/2006/mxml"</span> layout=<span class="str">"absolute"</span>&gt;</pre>
<pre class="alt">    &lt;mx:Script&gt;</pre>
<pre>        &lt;![CDATA[</pre>
<pre>            import com.adobe.serialization.json.JSON;</pre>
<pre>            <span class="kwrd">private</span> var py:Python</pre>
<pre>            [Bindable]</pre>
<pre class="alt">            <span class="kwrd">public</span> var texto:String = <span class="str">""</span></pre>
<pre class="alt">            <span class="kwrd">public</span> function iniciar():<span class="kwrd">void</span></pre>
<pre>            {</pre>
<pre class="alt">                py = <span class="kwrd">new</span> Python();</pre>
<pre>                py.addEventListener(ProgressEvent.SOCKET_DATA,onRecebe);</pre>
<pre class="alt">                py.addEventListener(Event.CONNECT,onConecta);</pre>
<pre>                py.addEventListener(IOErrorEvent.IO_ERROR,onErroIO);</pre>
<pre class="alt">                py.connect(<span class="str">"10.1.1.3"</span>,2727);</pre>
<pre>            }</pre>
<pre>            <span class="kwrd">public</span> function onRecebe(e:ProgressEvent):<span class="kwrd">void</span></pre>
<pre class="alt">            {</pre>
<pre>                var str:String = py.readUTFBytes(py.bytesAvailable);</pre>
<pre class="alt">                texto = str;</pre>
<pre>                py.flush();</pre>
<pre class="alt">            }</pre>
<pre class="alt">            <span class="kwrd">public</span> function onConecta(e:Event):<span class="kwrd">void</span></pre>
<pre>            {</pre>
<pre class="alt">                trace(<span class="str">"Conectou"</span>)</pre>
<pre>            }</pre>
<pre>            <span class="kwrd">private</span> function chamarTeste():<span class="kwrd">void</span></pre>
<pre class="alt">            {</pre>
<pre>                <span class="kwrd">if</span>(py.connected)</pre>
<pre class="alt">                    py.call(<span class="str">"testar"</span>,{arg1:<span class="str">"Argumento 1"</span>,arg2:<span class="str">"Argumento 2"</span>})</pre>
<pre>                <span class="kwrd">else</span></pre>
<pre class="alt">                    texto = <span class="str">"O socket esta desconectado"</span>;</pre>
<pre>            }</pre>
<pre>            <span class="kwrd">private</span> function chamarPegaVariaveis():<span class="kwrd">void</span></pre>
<pre class="alt">            {</pre>
<pre>                <span class="kwrd">if</span>(py.connected)</pre>
<pre class="alt">                    py.call(<span class="str">"pegaVariaveis"</span>)</pre>
<pre>                <span class="kwrd">else</span></pre>
<pre class="alt">                    texto = <span class="str">"O socket esta desconectado"</span></pre>
<pre>            }</pre>
<pre>            <span class="kwrd">private</span> function pegarArray():<span class="kwrd">void</span></pre>
<pre class="alt">            {</pre>
<pre>                <span class="kwrd">if</span>(py.connected)</pre>
<pre class="alt">                    py.call(<span class="str">"pegarArray"</span>);</pre>
<pre>                <span class="kwrd">else</span></pre>
<pre class="alt">                    texto = <span class="str">"O socket esta desconectado"</span>;</pre>
<pre>            }</pre>
<pre>            <span class="kwrd">private</span> function pegarObj():<span class="kwrd">void</span></pre>
<pre class="alt">            {</pre>
<pre>                <span class="kwrd">if</span>(py.connected)</pre>
<pre class="alt">                    py.call(<span class="str">"pegarObj"</span>);</pre>
<pre>                <span class="kwrd">else</span></pre>
<pre class="alt">                    texto = <span class="str">"O socket esta desconectado"</span>;</pre>
<pre>            }</pre>
<pre>            <span class="kwrd">private</span> function matarServer():<span class="kwrd">void</span></pre>
<pre class="alt">            {</pre>
<pre>                py.close();</pre>
<pre class="alt">                texto = <span class="str">"Desconectado"</span></pre>
<pre>            }</pre>
<pre>            <span class="kwrd">public</span> function onErroIO(e:IOErrorEvent):<span class="kwrd">void</span></pre>
<pre class="alt">            {</pre>
<pre>                trace(<span class="str">"Erro ao conectar com o socket"</span>);</pre>
<pre class="alt">            }</pre>
<pre class="alt">        ]]&gt;</pre>
<pre>    &lt;/mx:Script&gt;</pre>
<pre class="alt">    &lt;mx:VBox&gt;</pre>
<pre>        &lt;mx:HBox&gt;</pre>
<pre class="alt">            &lt;mx:Button label = <span class="str">"Testar"</span>         click = <span class="str">"chamarTeste()"</span>            /&gt;</pre>
<pre>            &lt;mx:Button label = <span class="str">"PegaVar"</span>         click = <span class="str">"chamarPegaVariaveis()"</span>    /&gt;</pre>
<pre class="alt">            &lt;mx:Button label = <span class="str">"pegarArray"</span>     click = <span class="str">"pegarArray()"</span>            /&gt;</pre>
<pre>            &lt;mx:Button label = <span class="str">"pegarObj"</span>         click = <span class="str">"pegarObj()"</span>            /&gt;</pre>
<pre class="alt">            &lt;mx:Button label = <span class="str">"Kill Server"</span>    click = <span class="str">"matarServer()"</span>            /&gt;</pre>
<pre>        &lt;/mx:HBox&gt;</pre>
<pre class="alt">        &lt;mx:Text text=<span class="str">"{texto}"</span> width=<span class="str">"100%"</span> height=<span class="str">"115"</span>/&gt;</pre>
<pre>    &lt;/mx:VBox&gt;</pre>
<pre class="alt">&lt;/mx:WindowedApplication&gt;</pre>
</div>
<p>Claro que esta aplicação ainda está bastante simples, mas o objetivo é demonstrar como pode ser facil conectar o AS3 com Python utilizando socket, para quem não conhece python, vale a pena dar uma estudada, é uma linguagem muito util, poderosa, e simples, que é utilizada em diversos lugares, alguns exemplos bons são nasa e google (precisa mais ? ), agora mistura isso com AS3  (tem algo MUITO funcional e bonito).</p>
<p><strong>Explicação rapida</strong></p>
<p>A sintaxe é muito parecida com a Tweener (classe de tween) que ja é bastante conhecida, então creio que não deve ter muita dificuldade para utilizar esta classe. Sendo que para chamar uma função do python é só chamar     instancia.call(“nome_da_funcao”,{nome_do_argumento:valor_do_argumento…….});</p>
<p>Se alguem tiver alguma duvida, ou sugestão para esta classe ou para futuras classes, deixe um comentario ou envie por email mesmo.</p>
<p>A formatação dos codigos ainda  não está boa, mas esta melhorando (plugin do Windows Live Writer)  se alguem conhecer algum plugin para formatar codigos que tenha suporte a AS, Python, PHP,e C  me avisa.</p>
<br />Publicado emAIR, AS 3.0, conexao, Flash geral, Flex, python, Socket  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/alkeller.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/alkeller.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/alkeller.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/alkeller.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/alkeller.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/alkeller.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/alkeller.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/alkeller.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/alkeller.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/alkeller.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/alkeller.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/alkeller.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/alkeller.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/alkeller.wordpress.com/41/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=alkeller.wordpress.com&amp;blog=2403732&amp;post=41&amp;subd=alkeller&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://alkeller.wordpress.com/2009/01/17/conexo-as3-com-python-via-socket-simplificado/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/92cf4f8bd8ab85b9a50c99c1c7b0716b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">alksk8</media:title>
		</media:content>
	</item>
		<item>
		<title>JSFL para converter png e jpg para swf (até 92% de compressão)</title>
		<link>http://alkeller.wordpress.com/2008/12/20/jsfl-para-converter-png-e-jpg-para-swf-ate-92-de-compressao/</link>
		<comments>http://alkeller.wordpress.com/2008/12/20/jsfl-para-converter-png-e-jpg-para-swf-ate-92-de-compressao/#comments</comments>
		<pubDate>Sat, 20 Dec 2008 14:22:42 +0000</pubDate>
		<dc:creator>alksk8</dc:creator>
				<category><![CDATA[Flash geral]]></category>
		<category><![CDATA[JSFL]]></category>

		<guid isPermaLink="false">http://alkeller.wordpress.com/?p=35</guid>
		<description><![CDATA[JSFL que exporta imagens para swf, realizando uma compressão de até 92% no tamanho dos arquivos.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=alkeller.wordpress.com&amp;blog=2403732&amp;post=35&amp;subd=alkeller&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Aproveitando as ferias da faculdade e essa parada de final de ano para trazer mais um JSFL desta vez realmente util.</p>
<p>O que ele faz:</p>
<p>- Abre 3 janelas, a primeira para escolher em que pasta estão as imagens a serem convertidas, a segunda para ver onde vão ser salvos os swf , e a terceira para ver onde vão ser salvos os flas (essa pode ser cancelada caso não precise dos flas)</p>
<p>- Para cada imagem da pasta selecionada na primeira janela, ele vai criar um fla novo, importar a imagem, redimensionar o palco, colocar allowsmooth, e exportar o swf, se optou por salvar so flas, ele ira salvar o fla na pasta selecionada, caso contrario ira fechar o fla e ir para a proxima imagem.</p>
<p>Resultados:</p>
<p>- Com alguns testes que eu fiz nas ultimas semanas a compressão dos arquivos chegou até 92% (isso faz uma boa diferença em qualquer site).</p>
<p>- Está facil de usar, qualquer um consegue usar, pois o jsfl faz tudo praticamente sozinho.</p>
<p>O JSFL:</p>
<p>Salve o codigo a seguir em como um arquivo jsfl:</p>
<blockquote><p><code>/*<br />
* JSFL para converter imagens para swf<br />
* Importa a imagem em um fla novo, e exporta o swf com a imagem. (redução de até 92% no "peso do arquivo")<br />
* @author Armando Leopoldo Keller (alkeller@live.de)  http://alkeller.wordpress.com<br />
*<br />
* Quem utilizar esta classe, favor enviar um email para ALKELLER@LIVE.DE com o "peso" das imagens antes e depois de serem exportadas.<br />
*<br />
*/</p>
<p>var fotosURI = fl.browseForFolderURL("Armando Leopoldo Keller(alkeller@live.de)\n \nSelecione a pasta das imagens.\n ");<br />
var swfsURI = fl.browseForFolderURL("Armando Leopoldo Keller(alkeller@live.de)\n \nSelecione a pasta dos swfs.\n ");<br />
var flasURI = fl.browseForFolderURL("Armando Leopoldo Keller(alkeller@live.de)\n \nSelecione a pasta dos flas.\n ");</p>
<p>var fileMask1 = "*.png";<br />
var fileMask2 = "*.jpg";</p>
<p>var list1 = FLfile.listFolder(fotosURI + "/" + fileMask1, "files");<br />
var list2 = FLfile.listFolder(fotosURI + "/" + fileMask2, "files");</p>
<p>function converte(list)<br />
{<br />
	for(var i in list)<br />
	{<br />
		var doc = fl.createDocument();<br />
		doc.importFile(fotosURI+"/"+list[i],true);<br />
		var it = doc.library.items[0];<br />
		it.quality = 80;<br />
		it.allowSmoothing = true;<br />
		doc.addItem({x:0,y:0},it);<br />
		var selecionado = doc.getTimeline().layers[0].frames[0].elements[0];<br />
		selecionado.x = 0;<br />
		selecionado.y = 0;<br />
		doc.width = parseInt(selecionado.width);<br />
		doc.height = parseInt(selecionado.height);<br />
		doc.frameRate = 1;<br />
		if(flasURI)<br />
		{<br />
			fl.saveDocument(doc,(flasURI+'/')+list[i].split(".png").join("").split(".jpg").join("")+'.fla',false);<br />
		}<br />
		doc.exportSWF(swfsURI+'/'+list[i].split(".png").join("").split(".jpg").join("")+'.swf',true);<br />
		doc.close(false);<br />
	}<br />
}</p>
<p>if(fotosURI &amp;&amp; swfsURI)<br />
{<br />
	if(list1.length &gt; 0)converte(list1); // png<br />
	if(list2.length &gt; 0)converte(list2); // jpg<br />
}<br />
else<br />
{<br />
	alert("Você deve selecionar todas as pastas.(a de .flas é opcional)")<br />
}</code></p></blockquote>
<p>Claro que ainda pode ser otimizado, assim que tiver mais tempo quero ver se otimizo ele.</p>
<p>Observaçoes importantes:</p>
<p>- Quando for converter pngs, exporte todos eles como interlaced (faça um batch no photoshop) assim ele não fica perguntando se quer importar como um bitmap flateado.</p>
<p>- Quem utilizar ele, favor mandar um email ou colocar aqui nos comentarios o tamanho dos arquivos convertidos antes e depois de converter (a soma de todos os arquivos) para motivos de estatistica e para ver se ainda tem como reduzir mais sem perder a qualidade da imagem.</p>
<p>Qualquer duvida é só colocar nos comentarios que eu respondo assim que tiver tempo.</p>
<br />Publicado emFlash geral, JSFL  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/alkeller.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/alkeller.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/alkeller.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/alkeller.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/alkeller.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/alkeller.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/alkeller.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/alkeller.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/alkeller.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/alkeller.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/alkeller.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/alkeller.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/alkeller.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/alkeller.wordpress.com/35/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=alkeller.wordpress.com&amp;blog=2403732&amp;post=35&amp;subd=alkeller&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://alkeller.wordpress.com/2008/12/20/jsfl-para-converter-png-e-jpg-para-swf-ate-92-de-compressao/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/92cf4f8bd8ab85b9a50c99c1c7b0716b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">alksk8</media:title>
		</media:content>
	</item>
		<item>
		<title>BUG no flashplayer (votem para corrigirem)</title>
		<link>http://alkeller.wordpress.com/2008/11/30/bug-no-flashplayer-votem-para-corrigirem/</link>
		<comments>http://alkeller.wordpress.com/2008/11/30/bug-no-flashplayer-votem-para-corrigirem/#comments</comments>
		<pubDate>Mon, 01 Dec 2008 01:23:12 +0000</pubDate>
		<dc:creator>alksk8</dc:creator>
				<category><![CDATA[Flash geral]]></category>
		<category><![CDATA[flash player]]></category>
		<category><![CDATA[BUG]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[TextField]]></category>

		<guid isPermaLink="false">http://alkeller.wordpress.com/?p=29</guid>
		<description><![CDATA[reporte de bug que impede a entrada de caracteres especiais em campos de texto quando o wmode esta transparente.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=alkeller.wordpress.com&amp;blog=2403732&amp;post=29&amp;subd=alkeller&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Bom, como devem ter percebido o blog está meio abandonado já faz algum tempo, mas isso devido a falta de tempo, trabalho + faculdade = no time <img src='http://s2.wp.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' />  , agora nas ferias da faculdade vou ter mais tempo para escrever aqui.</p>
<p>Hoje quero pedir a ajuda de toso os desenvolvedores que estão lendo o blog, para votarem para a adobe corrigir este bug ( <span class="Apple-style-span" style="border-collapse:separate;color:#000000;font-family:'Lucida Grande';font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;orphans:2;text-indent:0;text-transform:none;white-space:pre;widows:2;word-spacing:0;"><a title="http://bugs.adobe.com/jira/browse/FP-501" href="http://bugs.adobe.com/jira/browse/FP-501" target="_blank">http://bugs.adobe.com/jira/browse/FP-501</a> ) </span>, este bug é muito incomodo para a entrada de textos em flash (formularios), quando o wmode esta transparente é impossivel digitar caracteres como &#8220;ãéíúê&#8221;&#8230; e todos os outros caracteres que precisam de duas teclas para serem inseridos como por exemplo teclados que possuem a tecla ç  conseguem inserir a mesma, ja teclados como os de notebooks que precisa digitar &#8216; + c para inserir o ç não é possivel usar ç nos campos <img src='http://s2.wp.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' />    aqui tem um exemplo do bug acontecendo ( <span class="Apple-style-span" style="border-collapse:separate;color:#000000;font-family:'Lucida Grande';font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;orphans:2;text-indent:0;text-transform:none;white-space:pre;widows:2;word-spacing:0;"><a title="http://www.5etdemi.com/blog/archives/2005/06/firefox-wmodetransparent-is-completely-screwy-and-breaks-textfields/" href="http://www.5etdemi.com/blog/archives/2005/06/firefox-wmodetransparent-is-completely-screwy-and-breaks-textfields/" target="_blank">http://www.5etdemi.com/blog/archives/2005/06/firefox-wmodetransparent-is-completely-screwy-and-breaks-textfields/</a> )</span>.</p>
<p>Quem encontrar outro bug no flashplayer ( mas que tenha certeza que é no flashplayer e não no seu codigo, e nem algo que foi alterado por questoes de segurança) por favor, verifique se o bug ja foi reportado, se foi reportado, comente e vote para que ele seja corrigido (isso agiliza o processo), caso contrario reporte ele.</p>
<p>Desde ja, obrigado a todos os que votarem,  e provavelmente agora em dezembro eu volte a postar com mais frequencia.</p>
<p>Ideia dos proximos posts:  Como usar o debuger, inserir flash no flex, inserir flex no flash, performance no AS3 &#8230;.      Se  alguem  tiver mais alguma sugestão, avisa por email, ou por comentario.</p>
<br />Publicado emFlash geral, flash player  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/alkeller.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/alkeller.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/alkeller.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/alkeller.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/alkeller.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/alkeller.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/alkeller.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/alkeller.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/alkeller.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/alkeller.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/alkeller.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/alkeller.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/alkeller.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/alkeller.wordpress.com/29/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=alkeller.wordpress.com&amp;blog=2403732&amp;post=29&amp;subd=alkeller&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://alkeller.wordpress.com/2008/11/30/bug-no-flashplayer-votem-para-corrigirem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/92cf4f8bd8ab85b9a50c99c1c7b0716b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">alksk8</media:title>
		</media:content>
	</item>
		<item>
		<title>BUG com numeros no AS2 que foi &#8216;corrigido&#8217; no AS3</title>
		<link>http://alkeller.wordpress.com/2008/08/20/bug-com-numeros-no-as2-que-foi-corrigido-no-as3/</link>
		<comments>http://alkeller.wordpress.com/2008/08/20/bug-com-numeros-no-as2-que-foi-corrigido-no-as3/#comments</comments>
		<pubDate>Thu, 21 Aug 2008 02:31:46 +0000</pubDate>
		<dc:creator>alksk8</dc:creator>
				<category><![CDATA[AS 2.0]]></category>
		<category><![CDATA[AS 3.0]]></category>
		<category><![CDATA[Flash geral]]></category>
		<category><![CDATA[as2]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[BUG]]></category>
		<category><![CDATA[Decimal]]></category>
		<category><![CDATA[Number]]></category>
		<category><![CDATA[Octal]]></category>

		<guid isPermaLink="false">http://alkeller.wordpress.com/?p=24</guid>
		<description><![CDATA[Não sei se alguem percebeu, mas no AS2 tinha um &#8216;erro&#8217; se é que da para chamar assim, pois na documentação possui um exemplo. Quando tem algum numero com 0 na frente ele convertia para octal. Agora no AS3 ele converte certo para decimal. É bom avisar, vai que alguem ta acostumado com o octal. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=alkeller.wordpress.com&amp;blog=2403732&amp;post=24&amp;subd=alkeller&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Não sei se alguem percebeu, mas no AS2 tinha um &#8216;erro&#8217; se é que da para chamar assim, pois na documentação possui um exemplo.<br />
Quando tem algum numero com 0 na frente ele convertia para octal. Agora no AS3 ele converte certo para decimal. É bom avisar, vai que alguem ta acostumado com o octal.<br />
Exemplos e comparaçoes<br />
Conversão da base:<br />
<code><br />
// Execute isso:<br />
trace(00000001)<br />
trace(00000010)<br />
trace(00000100)<br />
trace(00001000)<br />
trace(00010000)<br />
trace(00100000)<br />
trace(01000000)<br />
trace("--------")<br />
trace(Number("00000001"))<br />
trace(Number("00000010"))<br />
trace(Number("00000100"))<br />
trace(Number("00001000"))<br />
trace(Number("00010000"))<br />
trace(Number("00100000"))<br />
trace(Number("01000000"))<br />
/*<br />
Resultado em AS2:<br />
1<br />
8<br />
64<br />
512<br />
4096<br />
32768<br />
262144<br />
--------<br />
1<br />
8<br />
64<br />
512<br />
4096<br />
32768<br />
262144</code></p>
<p>Em AS3:<br />
1<br />
10<br />
100<br />
1000<br />
10000<br />
100000<br />
1000000<br />
&#8212;&#8212;&#8211;<br />
1<br />
10<br />
100<br />
1000<br />
10000<br />
100000<br />
1000000<br />
*/</p>
<p>Outro Exemplo, desta vez com erro:<br />
<code><br />
// Executa<br />
trace(08);<br />
/*<br />
Resposta em AS2: Erro de sintaxe<br />
Resposta em AS3: 8<br />
*/<br />
</code></p>
<p>Isso pode parecer não ser nada, mas em alguma aplicação que trabalha com numeros formatados com umas 10 casas, e tudo tem 0 antes do valor real, isso altera o valor de tudo <img src='http://s2.wp.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>EDITADO :</p>
<p>Pelo que eu vi isso está documentado, mas não muito bem, ta dentro de um outro artigo no help do flash, apenas como um exemplo.</p>
<p>mas do numero em si com 0 antes ser octal tudo bem, mas o Number(&#8220;numero em string&#8221;)  deveria retornar decimal <img src='http://s2.wp.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' />   ainda mais que normalmente a entrada de dados depende do usuario (uma coisa a mais para filtrar).</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/alkeller.wordpress.com/24/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/alkeller.wordpress.com/24/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/alkeller.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/alkeller.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/alkeller.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/alkeller.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/alkeller.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/alkeller.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/alkeller.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/alkeller.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/alkeller.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/alkeller.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/alkeller.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/alkeller.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/alkeller.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/alkeller.wordpress.com/24/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=alkeller.wordpress.com&amp;blog=2403732&amp;post=24&amp;subd=alkeller&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://alkeller.wordpress.com/2008/08/20/bug-com-numeros-no-as2-que-foi-corrigido-no-as3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/92cf4f8bd8ab85b9a50c99c1c7b0716b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">alksk8</media:title>
		</media:content>
	</item>
		<item>
		<title>Classe para utilização de banco de dados em AIR atualizada (com eventos)</title>
		<link>http://alkeller.wordpress.com/2008/08/02/classe-para-utilizacao-de-banco-de-dados-em-air-atualizada-com-eventos/</link>
		<comments>http://alkeller.wordpress.com/2008/08/02/classe-para-utilizacao-de-banco-de-dados-em-air-atualizada-com-eventos/#comments</comments>
		<pubDate>Sun, 03 Aug 2008 00:49:27 +0000</pubDate>
		<dc:creator>alksk8</dc:creator>
				<category><![CDATA[AIR]]></category>
		<category><![CDATA[AS 3.0]]></category>
		<category><![CDATA[Flash geral]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[banco de dados]]></category>
		<category><![CDATA[classe]]></category>
		<category><![CDATA[exemplo]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[SQLite]]></category>

		<guid isPermaLink="false">http://alkeller.wordpress.com/?p=16</guid>
		<description><![CDATA[Seguindo as sugestões do flavio no post antigo, eu atualizei a classe, agora ela tem eventos e aceita parametros (mais seguro). OBS: copie e cole os links no seu navegador link para arquivos da classe: http://paginas.terra.com.br/lazer/alksk8/DB.zip Fiz tambem um exemplo da utilização da mesma, que agora não é mais global. link para .as do exemplo [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=alkeller.wordpress.com&amp;blog=2403732&amp;post=16&amp;subd=alkeller&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Seguindo as sugestões do flavio no post antigo, eu atualizei a classe, agora ela tem eventos e aceita parametros (mais seguro).</p>
<p>OBS: copie e cole os links no seu navegador</p>
<p>link para arquivos da classe: http://paginas.terra.com.br/lazer/alksk8/DB.zip</p>
<p>Fiz tambem um exemplo da utilização da mesma, que agora não é mais global.</p>
<p>link para .as do exemplo : http://paginas.terra.com.br/lazer/alksk8/Main.as</p>
<p>link para o .fla do exemplo: http://paginas.terra.com.br/lazer/alksk8/Main.fla</p>
<p>Eu estou postando com menos frequencia devido a falta de tempo, mas quando sobra tempo estou aqui.</p>
<p>Agora estou envolvido com outro projeto o <a title="GOAS3" href="http://code.google.com/p/goas3" target="_blank">GOAS3 </a> que tem por objetivo utilizar os serviços disponibilizados pela API do google, isto tambem esta consumindo uma boa parte do meu tempo.</p>
<p>Qualquer duvida , sugestão, ou critica sobre a classe favor fazer por comentario.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/alkeller.wordpress.com/16/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/alkeller.wordpress.com/16/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/alkeller.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/alkeller.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/alkeller.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/alkeller.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/alkeller.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/alkeller.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/alkeller.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/alkeller.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/alkeller.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/alkeller.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/alkeller.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/alkeller.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/alkeller.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/alkeller.wordpress.com/16/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=alkeller.wordpress.com&amp;blog=2403732&amp;post=16&amp;subd=alkeller&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://alkeller.wordpress.com/2008/08/02/classe-para-utilizacao-de-banco-de-dados-em-air-atualizada-com-eventos/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/92cf4f8bd8ab85b9a50c99c1c7b0716b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">alksk8</media:title>
		</media:content>
	</item>
		<item>
		<title>JSFL para ajustar posiçoes dos itens como campos de texto com pixelFonts(pixel Snapping)</title>
		<link>http://alkeller.wordpress.com/2008/07/11/jsfl-para-ajustar-posicoes-dos-itens-como-campos-de-texto-com-pixelfontspixel-snapping/</link>
		<comments>http://alkeller.wordpress.com/2008/07/11/jsfl-para-ajustar-posicoes-dos-itens-como-campos-de-texto-com-pixelfontspixel-snapping/#comments</comments>
		<pubDate>Sat, 12 Jul 2008 01:28:55 +0000</pubDate>
		<dc:creator>alksk8</dc:creator>
				<category><![CDATA[AS 2.0]]></category>
		<category><![CDATA[AS 3.0]]></category>
		<category><![CDATA[Flash geral]]></category>
		<category><![CDATA[JSFL]]></category>
		<category><![CDATA[as2]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[commands]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[pixelSnapping]]></category>
		<category><![CDATA[script]]></category>

		<guid isPermaLink="false">http://alkeller.wordpress.com/?p=15</guid>
		<description><![CDATA[Olá, primeiramente quero dizer que não tenho postado muita coisa no blog devido a falta de tempo, e tambem de conteudo(até se alguem tiver alguma sugestão manda por email ou coloca aqui como comentario que eu farei o possivel para falar sobre o assunto). Hoje a tarde depois de arrumar as posiçoes dezenas de movieClips [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=alkeller.wordpress.com&amp;blog=2403732&amp;post=15&amp;subd=alkeller&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Olá, primeiramente quero dizer que não tenho postado muita coisa no blog devido a falta de tempo, e tambem de conteudo(até se alguem tiver alguma sugestão manda por email ou coloca aqui como comentario que eu farei o possivel para falar sobre o assunto).</p>
<p>Hoje a tarde depois de arrumar as posiçoes dezenas de movieClips para que não distorcessem eu pensei &#8220;por que eu estou fazendo isso? o flash poderia fazer sozinho&#8221;, então criei este JSFL que faz exatamente isto <a title="Pixel Snapping [alk].jsfl" href="http://paginas.terra.com.br/lazer/alksk8/Pixel%20Snapping%20alk.jsfl" target="_blank">(link)</a></p>
<p>OBS: se o link não funcionar copie ele e cole no navegador;</p>
<p>Como utilizar: é só executar.</p>
<p>ele pega todos os itens(movieClip,Button,Graphic,TextField..)  da timeline atual e ajusta  as posiçoes dos mesmos.</p>
<p>para aplicar isto dentro de um movieClip , abra-o e execute o comando dentro do movie;</p>
<p>pra quem não conseguiu abrir o link aqui vai o codigo:</p>
<blockquote><p>// Pixel Snapping [alk].jsfl</p>
<p>/*<br />
Script criado por Armando Leopoldo Keller(http://alkeller.wordpress.com)<br />
para instalar: só colar este arquivo em C:\Users\nome_do_usuario\AppData\Local\Adobe\Flash CS3\en\Configuration\Commands<br />
obs: este é o caminho no windows vista<br />
*/<br />
for( var i = 0; i &lt; fl.getDocumentDOM().getTimeline().layers.length; i++)<br />
{<br />
var layerAtual = fl.getDocumentDOM().getTimeline().layers[i];<br />
for(var j = 0 ; j &lt; layerAtual.frames.length ; j++)<br />
{<br />
var frameAtual = layerAtual.frames[j];<br />
for(var k = 0 ; k &lt; frameAtual.elements.length ; k++)<br />
{<br />
var elementoAtual = frameAtual.elements[k];<br />
elementoAtual.x = parseInt(elementoAtual.x);<br />
elementoAtual.y = parseInt(elementoAtual.y);<br />
}<br />
}<br />
}</p></blockquote>
<p>Qualquer coisa é só comentar, ou mandar email que eu respondo.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/alkeller.wordpress.com/15/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/alkeller.wordpress.com/15/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/alkeller.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/alkeller.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/alkeller.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/alkeller.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/alkeller.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/alkeller.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/alkeller.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/alkeller.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/alkeller.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/alkeller.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/alkeller.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/alkeller.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/alkeller.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/alkeller.wordpress.com/15/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=alkeller.wordpress.com&amp;blog=2403732&amp;post=15&amp;subd=alkeller&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://alkeller.wordpress.com/2008/07/11/jsfl-para-ajustar-posicoes-dos-itens-como-campos-de-texto-com-pixelfontspixel-snapping/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/92cf4f8bd8ab85b9a50c99c1c7b0716b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">alksk8</media:title>
		</media:content>
	</item>
		<item>
		<title>Away3D ou Papervision ?</title>
		<link>http://alkeller.wordpress.com/2008/04/21/away3d-ou-papervision/</link>
		<comments>http://alkeller.wordpress.com/2008/04/21/away3d-ou-papervision/#comments</comments>
		<pubDate>Mon, 21 Apr 2008 14:38:58 +0000</pubDate>
		<dc:creator>alksk8</dc:creator>
				<category><![CDATA[AS 3.0]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[Papervision 3D]]></category>
		<category><![CDATA[Flash geral]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[Actionscript]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[papervision]]></category>
		<category><![CDATA[away 3D]]></category>

		<guid isPermaLink="false">http://alkeller.wordpress.com/?p=13</guid>
		<description><![CDATA[Olá, eu estava procurando algumas outras engines 3d para Actionscript, foi então que eu encontrei o Away3D( http://away3d.com/ ) que aparentemente parece ser melhor do que o papervision para coisas mais completas. Se alguem testar os dois coloque a sua opnião aqui. eu escolho o  Away3D  <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=alkeller.wordpress.com&amp;blog=2403732&amp;post=13&amp;subd=alkeller&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Olá, eu estava procurando algumas outras engines 3d para Actionscript, foi então que eu encontrei o Away3D( http://away3d.com/ ) que aparentemente parece ser melhor do que o papervision para coisas mais completas.</p>
<p>Se alguem testar os dois coloque a sua opnião aqui.</p>
<p>eu escolho o  Away3D   <img src='http://s0.wp.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/alkeller.wordpress.com/13/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/alkeller.wordpress.com/13/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/alkeller.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/alkeller.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/alkeller.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/alkeller.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/alkeller.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/alkeller.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/alkeller.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/alkeller.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/alkeller.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/alkeller.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/alkeller.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/alkeller.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/alkeller.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/alkeller.wordpress.com/13/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=alkeller.wordpress.com&amp;blog=2403732&amp;post=13&amp;subd=alkeller&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://alkeller.wordpress.com/2008/04/21/away3d-ou-papervision/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/92cf4f8bd8ab85b9a50c99c1c7b0716b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">alksk8</media:title>
		</media:content>
	</item>
		<item>
		<title>Classe para utilização de SQL em AIR (Flash, Flex)</title>
		<link>http://alkeller.wordpress.com/2008/04/05/classe-para-utilizacao-de-sql-em-air-flash-flex/</link>
		<comments>http://alkeller.wordpress.com/2008/04/05/classe-para-utilizacao-de-sql-em-air-flash-flex/#comments</comments>
		<pubDate>Sat, 05 Apr 2008 22:42:27 +0000</pubDate>
		<dc:creator>alksk8</dc:creator>
				<category><![CDATA[AIR]]></category>
		<category><![CDATA[AS 3.0]]></category>
		<category><![CDATA[Flash geral]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[AS 3]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[DB]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[SQLite]]></category>

		<guid isPermaLink="false">http://alkeller.wordpress.com/?p=12</guid>
		<description><![CDATA[Neste tutorial mostrarei como utilizar uma classe que eu criei para facilitar o uso de SQL em AIR (tanto para flash quanto para flex) A classe é esta: /* ################################################ # # # Classe : DB (com.alkeller.air.DB) # # Autor : Armando Leopoldo Keller # # Versão : 1.0 # # Contato : alksk8@hotmail.com # [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=alkeller.wordpress.com&amp;blog=2403732&amp;post=12&amp;subd=alkeller&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Neste tutorial mostrarei como utilizar uma classe que eu criei para facilitar o uso de SQL em AIR (tanto para flash quanto para flex)<br />
A classe é esta:</p>
<blockquote><p>/*<br />
################################################<br />
#                                              #<br />
#   Classe  : DB (com.alkeller.air.DB)         #<br />
#   Autor   : Armando Leopoldo Keller          #<br />
#   Versão  : 1.0                              #<br />
#   Contato : alksk8@hotmail.com               #<br />
#   Blog    : http://alkeller.wordpress.com    #<br />
#   Documentaçao em breve no blog              #<br />
#                                              #<br />
################################################<br />
&#8212;&#8212;- Deixe os creditos na classe &#8212;&#8212;&#8212;-<br />
*/<br />
package com.alkeller.air<br />
{<br />
// Imports<br />
import flash.data.SQLResult;<br />
import flash.filesystem.File;<br />
import flash.data.SQLStatement;<br />
import flash.data.SQLConnection;<br />
import flash.events.SQLEvent;<br />
import flash.events.SQLErrorEvent;<br />
import flash.errors.SQLError;</p>
<p>// Classe;<br />
public class DB<br />
{<br />
// Variaveis utilizadas;<br />
private static var conectado:Boolean = false;<br />
private static var dbFile:File<br />
private static var conn:SQLConnection<br />
private static var _sqlStatement:SQLStatement;<br />
private static var resultado:SQLResult;<br />
private static var retornoString:String;<br />
private static var retornoObjeto:Object;</p>
<p>// Funçao Inicia :utilizada para conectar com o banco de dados;<br />
public static function Inicia(_nome:String):String<br />
{<br />
conn = new SQLConnection();<br />
dbFile = File.applicationStorageDirectory.resolvePath(String(_nome+&#8221;.db&#8221;));<br />
try<br />
{<br />
conn.open(dbFile);<br />
conectado = true;<br />
trace(&#8220;Conectado com &#8220;+_nome+&#8221;.db&#8221;);<br />
retornoString = &#8220;Conectado com &#8220;+_nome+&#8221;.db&#8221;;<br />
}<br />
catch (error:SQLError) {<br />
conectado = false;<br />
retornoString = &#8220;Falha ao conectar: &#8220;+error.message+&#8221;\nDetalhes: &#8220;+error.details;<br />
}<br />
return retornoString;<br />
}<br />
// Funçao executeQuery: Utilizada para executar um comando SQL(verificar quais são aceitos pelo AIR);<br />
// Retorno: SQLResult &#8211;&gt; http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/data/SQLResult.html<br />
// ou  String de erro;<br />
public static function executeQuery(_sql:String):Object<br />
{<br />
if(conectado == true)<br />
{<br />
_sqlStatement = new SQLStatement();<br />
_sqlStatement.sqlConnection = conn;<br />
_sqlStatement.text = _sql;<br />
try<br />
{<br />
_sqlStatement.execute();<br />
resultado = _sqlStatement.getResult();<br />
retornoObjeto = resultado;<br />
}<br />
catch (error:SQLError)<br />
{<br />
retornoString = &#8220;Falha ao executar(&#8220;+_sql+&#8221;): &#8220;+error.message+&#8221;\nDetalhes: &#8220;+error.details;<br />
}<br />
return retornoObjeto?retornoObjeto:retornoString;<br />
}<br />
else<br />
{<br />
return &#8220;Não conectado!&#8221;;<br />
}<br />
}<br />
}<br />
}</p></blockquote>
<p>Classe para download: http://paginas.terra.com.br/lazer/alksk8/DB.as</p>
<p>Como utilizar:<br />
1 &#8211; Importe a classe:</p>
<blockquote><p>// OBS: Aqui é bom verificar se a classe esta no local certo com/alkeller/air/<br />
import com.alkeller.air.*;<br />
// ou<br />
import com.alkeller.air.DB;</p></blockquote>
<p>2 &#8211; Inicie o banco:</p>
<blockquote><p>DB.Inicia(&#8220;teste&#8221;); // sendo que teste é o nome do banco</p></blockquote>
<p>3 &#8211; Se as tabelas não existirem, crie elas:</p>
<blockquote><p>DB.executeQuery(&#8220;CREATE TABLE IF NOT EXISTS testando (id INTEGER PRIMARY KEY AUTOINCREMENT,nome TEXT,sobrenome TEXT)&#8221;);</p></blockquote>
<p>4.1 &#8211; Execute as Querys que desejar, por exemplo inserir alguns dados:</p>
<blockquote><p>DB.executeQuery(&#8220;INSERT INTO testando (id,nome,sobrenome) VALUES (null,&#8217;ARMANDO LEOPOLDO&#8217;,'KELLER&#8217;)&#8221;);</p></blockquote>
<p>4.2 &#8211; Exemplo de como buscar dados:</p>
<blockquote><p>var obj:Object = DB.executeQuery(&#8220;SELECT * FROM testando&#8221;).data;<br />
for(var i:uint=0; i &lt; obj.length; i++)<br />
{<br />
trace(&#8220;linha: &#8220;+i)<br />
for(var j:Object in obj[i])<br />
{<br />
trace(j+&#8221;: &#8220;+obj[i][j])<br />
}<br />
}</p></blockquote>
<p>Aproveitem a classe <img src='http://s0.wp.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Em breve colocarei aqui este tutorial em video.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/alkeller.wordpress.com/12/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/alkeller.wordpress.com/12/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/alkeller.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/alkeller.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/alkeller.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/alkeller.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/alkeller.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/alkeller.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/alkeller.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/alkeller.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/alkeller.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/alkeller.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/alkeller.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/alkeller.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/alkeller.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/alkeller.wordpress.com/12/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=alkeller.wordpress.com&amp;blog=2403732&amp;post=12&amp;subd=alkeller&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://alkeller.wordpress.com/2008/04/05/classe-para-utilizacao-de-sql-em-air-flash-flex/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/92cf4f8bd8ab85b9a50c99c1c7b0716b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">alksk8</media:title>
		</media:content>
	</item>
		<item>
		<title>NativeMenu em AIR (flash)</title>
		<link>http://alkeller.wordpress.com/2008/03/16/nativemenu-em-air-flash/</link>
		<comments>http://alkeller.wordpress.com/2008/03/16/nativemenu-em-air-flash/#comments</comments>
		<pubDate>Sun, 16 Mar 2008 21:04:42 +0000</pubDate>
		<dc:creator>alksk8</dc:creator>
				<category><![CDATA[AIR]]></category>
		<category><![CDATA[AS 3.0]]></category>
		<category><![CDATA[Flash geral]]></category>
		<category><![CDATA[Actionscript 3]]></category>
		<category><![CDATA[Apollo]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[Menu]]></category>
		<category><![CDATA[NativeMenu]]></category>
		<category><![CDATA[NativeMenuItem]]></category>

		<guid isPermaLink="false">http://alkeller.wordpress.com/?p=11</guid>
		<description><![CDATA[Olá, segue abaixo um exemplo comentado de como utilizar menus(como os da maioria dos softwares) em AIR, é um exemplo básico baseado em tutoriais da Adobe. /* Primeiro crie um arquivo novo(air) crie um campo de texto com o tamanho que desejar instancie o campo de texto como &#8220;texto&#8221; (sem as aspas) cole o codigo [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=alkeller.wordpress.com&amp;blog=2403732&amp;post=11&amp;subd=alkeller&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Olá, segue abaixo um exemplo comentado de como utilizar menus(como os da maioria dos softwares) em AIR, é um exemplo básico baseado em tutoriais da Adobe.</p>
<blockquote><p><font color="#666666">/*</font></p>
<p><font color="#666666">Primeiro crie um arquivo novo(air)</font></p>
<p><font color="#666666">crie um campo de texto com o tamanho que desejar</font></p>
<p><font color="#666666">instancie o campo de texto como &#8220;texto&#8221; (sem as aspas)</font></p>
<p><font color="#666666">cole o codigo a seguir no primeiro frame</font></p>
<p><font color="#666666">*/</font></p>
<p><font color="#666666">// importa	as classes necessarias</font></p>
<p><font color="#0000ff">import flash<font color="#000000">.</font>display<font color="#000000">.</font>NativeMenu</font>;</p>
<p><font color="#0000ff">import flash<font color="#000000">.</font>display<font color="#000000">.</font>NativeMenuItem</font>;</p>
<p><font color="#0000ff">import flash.display.NativeWindow</font>;</p>
<p><font color="#0000ff">import flash.desktop.NativeApplication</font>;</p>
<p><font color="#666666">//declara os 2 items do menu</font></p>
<p><font color="#0000ff">var</font> Menu01:<font color="#0000ff">NativeMenuItem</font>;</p>
<p><font color="#0000ff">var</font> Menu02:<font color="#0000ff">NativeMenuItem</font>;</p>
<p><font color="#0000ff">if</font> (<font color="#0000ff">NativeWindow.supportsMenu</font>)<font color="#666666">// Se o sistema operacional for windows</font></p>
<p>{</p>
<p><font color="#0000ff">          stage.nativeWindow.menu</font> = <font color="#0000ff">new NativeMenu()</font>; <font color="#666666">//cria o menu</font></p>
<p><font color="#0000ff">          stage.nativeWindow.menu.addEventListener</font>(<font color="#0000ff">Event.SELECT</font>, selecionouUmItem);<font color="#666666">//adiciona um evento de seleção no menu</font></p>
<p>Menu01 = <font color="#0000ff">stage.nativeWindow.menu.addItem</font>(<font color="#0000ff">new NativeMenuItem</font>(<font color="#008800">&#8220;Primeiro item&#8221;</font>));<font color="#666666">//adiciona o primeiro item no menu</font></p>
<p>Menu01.<font color="#0000ff">submenu</font> = criaSubMenu(); <font color="#666666">// adiciona o submenu(que vai ser criado logo abaixo) ao primeiro item</font></p>
<p>Menu02 = <font color="#0000ff">stage.nativeWindow.menu.addItem</font>(<font color="#0000ff">new NativeMenuItem</font>(<font color="#008800">&#8220;Segundo item&#8221;</font>));<font color="#666666">//adiciona o segundo item no menu</font></p>
<p>}</p>
<p><font color="#0000ff">if</font> (<font color="#0000ff">NativeApplication.supportsMenu</font>)<font color="#666666">// se o sistema operacionall for mac</font></p>
<p>{</p>
<p>Menu01 = <font color="#0000ff">NativeApplication.nativeApplication.menu.addItem</font>(<font color="#0000ff">new NativeMenuItem</font>(<font color="#008800">&#8220;Primeiro item&#8221;</font>));<font color="#666666">//adiciona o primeiro item no menu</font></p>
<p><font color="#0000ff">           NativeApplication.nativeApplication.menu</font><font color="#000000">.</font><font color="#0000ff">addEventListener</font>(<font color="#0000ff">Event.SELECT</font>, selecionouUmItem);<font color="#666666">//adiciona um evento de seleção no menu</font></p>
<p>Menu01.<font color="#0000ff">submenu</font> = criaSubMenu(); <font color="#666666">// adiciona o submenu(que vai ser criado logo abaixo) ao primeiro item</font></p>
<p>Menu02 = <font color="#0000ff">NativeApplication.nativeApplication.menu.addItem</font>(<font color="#0000ff">new NativeMenuItem</font>(<font color="#008800">&#8220;Segundo item&#8221;</font>));<font color="#666666">//adiciona o segundo item no menu</font></p>
<p>}</p>
<p><font color="#0000ff">function</font> criaSubMenu():<font color="#0000ff">NativeMenu</font></p>
<p>{</p>
<p><font color="#0000ff">var </font>tmpMenu:<font color="#0000ff">NativeMenu</font> = <font color="#0000ff">new NativeMenu()</font>; <font color="#666666">// cria o submenu do primeiro item</font></p>
<p><font color="#0000ff">var </font>MenuNovo:<font color="#0000ff">NativeMenuItem</font> = tmpMenu.<font color="#0000ff">addItem</font>(<font color="#0000ff">new NativeMenuItem</font>(<font color="#008800">&#8220;Novo&#8221;</font>));<font color="#666666">//adiciona o item &#8220;Novo&#8221; ao submenu</font></p>
<p><font color="#0000ff">var</font> MenuSalva:<font color="#0000ff">NativeMenuItem</font> = tmpMenu.<font color="#0000ff">addItem</font>(<font color="#0000ff">new NativeMenuItem</font>(<font color="#008800">&#8220;Salva&#8221;</font>));<font color="#666666">//adiciona o item &#8220;Salva&#8221; ao submenu</font></p>
<p><font color="#0000ff">var</font> MenuSair:<font color="#0000ff">NativeMenuItem</font> = tmpMenu.<font color="#0000ff">addItem</font>(<font color="#0000ff">new NativeMenuItem</font>(<font color="#008800">&#8220;Sair&#8221;</font>));<font color="#666666">//adiciona o item &#8220;Sair&#8221; ao submenu</font></p>
<p><font color="#0000ff">return</font> tmpMenu;</p>
<p>}</p>
<p><font color="#0000ff">function</font> selecionouUmItem(e:<font color="#0000ff">Event</font>)<br />
{</p>
<p>texto.<font color="#0000ff">text</font> = e.<font color="#0000ff">target</font>.<font color="#0000ff">label</font> <font color="#666666">// escreve o nome do item selecionado no campo de texto</font></p>
<p>}</p></blockquote>
<p>Qualquer duvida é só postar que eu respondo.</p>
<p>Assim que sobrar algum tempo por aqui eu postarei um tutorial (bem detalhado) e com os exemplos, de como utilizar um banco de dados local com o AIR.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/alkeller.wordpress.com/11/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/alkeller.wordpress.com/11/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/alkeller.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/alkeller.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/alkeller.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/alkeller.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/alkeller.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/alkeller.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/alkeller.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/alkeller.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/alkeller.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/alkeller.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/alkeller.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/alkeller.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/alkeller.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/alkeller.wordpress.com/11/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=alkeller.wordpress.com&amp;blog=2403732&amp;post=11&amp;subd=alkeller&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://alkeller.wordpress.com/2008/03/16/nativemenu-em-air-flash/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/92cf4f8bd8ab85b9a50c99c1c7b0716b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">alksk8</media:title>
		</media:content>
	</item>
	</channel>
</rss>
