sexta-feira, 29 de maio de 2009

Painel Flash Simples - AS3 + XML

Umas das coisas mais usadas mundo afora é o painel flash puxando dados de um arquivo XML, é muito rápido e simples de fazer, vou postar um aqui com o codigo-fonte, muita gente vai gostar.



import caurina.transitions.Tweener;

var posL:int = 1;
var xmlSite:XML;
var xmlListSite:XMLList;
var xmlLoaderSite:URLLoader = new URLLoader();
//xmlLoaderSite.load(new URLRequest("/xml/imagens-empresa-produtos.xml"));
xmlLoaderSite.load(new URLRequest("http://65.254.56.211/~soda/sodaflash/painel_simples/xml.xml"));
xmlLoaderSite.addEventListener(Event.COMPLETE, xmlLoadedSite);


function xmlLoadedSite(event:Event):void {
xmlSite=XML(event.target.data);
xmlListSite=xmlSite.children();

desmonta(0)

}
var imageLoader:Loader
function desmonta(n:int){
Tweener.addTween(local,{alpha:1,time:1, onComplete:function() { monta(n); }});
// Tweener.addTween(porcentagem,{alpha:1,time:1});
}

function monta(n:int){


imageLoader = new Loader();
imageLoader.load(new URLRequest(xmlSite.picture[n].attribute("miniature_url")));

local.addChild(imageLoader);
imageLoader.contentLoaderInfo.addEventListener( Event.INIT, mostraImagem );

}

function mostraImagem(event:Event ):void {

var loader:Loader=Loader(event.target.loader);
loader.alpha=0;
Tweener.addTween(loader,{alpha:1,time:2});

Tweener.addTween(local,{alpha:1,time:2});

// iniciando o Timer
meuTempo.start();
}




var meuTempo:Timer = new Timer(4000);
meuTempo.addEventListener("timer", FuncaoDoTimer);




//funcao será chamada a cada 500ms
function FuncaoDoTimer(e:TimerEvent){
meuTempo.stop();
trace(posL);
if(posL >= xmlListSite.length()-1){

desmonta(posL);
posL=0;
}else{

desmonta(posL);
posL++;
}
trace("Timer chamado " + meuTempo.currentCount + " veses.");
}


Tweener.addTween(gira,{rotation:359,time:.52,transition:"linear",onComplete:repete});
function repete(){
gira.rotation = 0;
Tweener.addTween(gira,{rotation:359,time:.52,transition:"linear",onComplete:repete});
}
A pasta de todos os arquivos é aqui
(arquivos flash CS4);

sexta-feira, 22 de maio de 2009

Como ativar o smoothing em imagens dinâmicas.

Isso é muito útil quando precisamos scalar ou rotacionar uma imagem dinâmica.
Aqui vai o source.


package {
    import flash.display.Sprite;
    import flash.display.Loader;
    import flash.net.URLRequest;
    import flash.events.*;
    import flash.display.Bitmap;
    public class Thumbnail extends Sprite {
        private var url:String;
        private var loader:Loader;
        private var urlRequest:URLRequest;
        function Thumbnail(source:String):void {
            url=source;
            drawLoader();
       }
        private function drawLoader():void {
            urlRequest=new URLRequest(url);
            loader=new Loader;
            loader.load(urlRequest);
//O evento listener voce deve usar o contentLoaderInfo
           loader.contentLoaderInfo.addEventListener(Event.COMPLETE,done)        
        }
        private function done(e:Event){

//aqui pegamos a imagem e transformamos em bitmap
var bit:Bitmap = e.target.content;   
     //se tiver correto
            if(bit != null)
  bit.smoothing = true;
            }
            addChild(loader);
           
        }
   }
}

quinta-feira, 14 de maio de 2009

getURL no Actionscript 3 / Iniciante

Uma das grandes mudanças no ActionScript 3 é o modo como voce chama um link.

Isso mudou a mais de 1 ano, mas como sempre me perguntam sobre isso resolvi escrever, é algo bem básico.

O modo antigo de fazer isso em AS2 era:
getURL("url", "target");


Com o AS3 isso mudou para:
var url:String = "http://site";
var request:URLRequest = new URLRequest(url);
try {
navigateToURL(request, '_blank'); // segundo argumento é o target
} catch (e:Error) {
trace("Erro encontrado!");
}



A mais óbvia diferença foi o mode de chamar a classe URLRequest para o método navigateToURL().

Normalmente chamamos essa função através de um botão(button) segue um exemplo simples:

movieClipName.addEventListener(MouseEvent.CLICK, clickLink);
function clickLink:void {
var url:String = "http://site";
var request:URLRequest = new URLRequest(url);
try {
navigateToURL(request, '_blank');
} catch (e:Error) {
trace("Erro encontrado!");
}
}
É isso, abraços!

segunda-feira, 4 de maio de 2009

Video para celular.

Estava em casa, olhei pro meu celular e pensei em fazer algo pra personaliza-lo, abri o AfterEffects e fiz uma coisa bem rápida(cerca de 1hora e meia).

Há, precisava ser em 320 x 240px, e ter 15FPS(frames por segundo), o que faz a qualidade cair um pouco para ver via YouTube, mas de qualquer forma está ai. A música é Incubus - Paper Shoes.



Creditos para arte de Diego Costa(site) - Soda Virtual