March 25th, 2009
Em meus ultimos trabalhos criei e aperfeiçoei um classe de loader em fila que armazenasse os arquivos carregados para futuras requisições.
DataLib
Overview:
-Static
Por ser uma classe estátca qualquer arquivo carregado pode ser acessado em qualquer parte da aplicação, mesmo de arquivos SWF externos.
-Load queue
Qualquer arquivo deve ser adicionado em uma fila de carregamentos passando-se o caminho e tipo de arquivo a ser carregado. O arquivo pode ser adicionado no fim da file ou em uma posição especifica.
DataLib.addItem("file.swf", DataLib.TYPE_SWF);
DataLib.addItemAt("file.png", 0, DataLib.TYPE_PNG);
DataLib.addItem("file.wav", DataLib.TYPE_BINARY);
Também é possivel acessar a file de carregamento.
var queue:Array = DataLib.queue;
Para iniciar o caregamento você deve executar a função DataLib.load()
Támbem é possível pausar, recarregar e parar o carregamento.
DataLib.pause();
DataLib.resume();
DataLib.close();
-Data storage
Todo arquivo carregado é armazenado para futuras requisições. Caso necessario os arquivos podem ser deletados, liberando memoria. Os arquivos podem ser acessados utilizando como referência sua URL.
var image:Bitmap = DataLib.lib[fileURL].data;
addChild(image);
DataLib.removeItem(fileURL);
-Custom Events
Eventos especificos dessa classe podem ser adicionados para acompanhar o carregamento. Você pode adicionar eventos na própria classe ou em um item especifico.
*Lembre-se de remover qualquer evento adicionado na classe para evitar conflitos com outros carregamentos
DataLib.addItemAt("file.png", 0, DataLib.TYPE_PNG).addEventListener(DataLibEvent.PROGRESS, onItemProgress);
DataLib.lib["file.xml"].addEventListener(DataLibEvent.COMPLETE, onItemComplete);
DataLib.addEventListener(DataLibEvent.COMPLETE, onComplete);
DataLib.load();
function onItemProgress(e:Event):void{
trace(Math.floor(e.bytesLoaded*100/e.bytesTotal)+"%");
}
function onItemComplete(e:Event):void{
trace(e.data);
}
function onComplete(e:Event):void{
addChild(DataLib.lib["file.png"].data);
}
-JPG, GIF, PNG, SWF, XML and BINARY
Esses são os arquivos suportados. No caso de arquivos SWF é possível acessar classes exportadas utilizando o application domain do filme principal.
DataLib.addItem("asset.swf", DataLib.TYPE_SWF);
addChild(DataLib.lib["asset.swf"].data)
var EmbedClass:Class = ApplicationDomain.currentDomain.getDefinition("assetEmbedClass") as Class;
var instance:* = new EmbedClass();
Você pode fazer o download dessa e outras classes minhas utilizando o meu google code.
http://andreanaya.googlecode.com/svn/trunk/
Existe também um exemplo de uso dessa classe.
Obrigado a todos e espero que essa classe seja util para vocês. Qualquer problema ou sugestão por favor me informem.
Anaya
Tags: as3, lib
Posted in as3 | 2 Comments »
March 24th, 2009
Primeiros exprerimentos de nada que pode ser tornar algo
Use as setas para controlar o avião
Aumente a velociade pressionando espaço
Demo

Source
Tags: 3d, as3, demo, papervision, source
Posted in as3 | No Comments »
March 23rd, 2009
Sexta passada estava olhando o Flash Bookmarks e vi que uma dúvida foi postada em relação ao Loader.
Um tempo atrás eu precisei carregar um arquivo utilizando um Loader e depois adicionar o conteudo carregado no stage. Contudo um erro era gerado ao adicionar o conteúdo.
ArgumentError: Error #2025 : The supplied DisplayObject must be a child of the caller.
Para resolver o problema eu precisei extrair o conteudo em uma variavel e depois executar um loader.unload() antes de adicionar ao stage.
function onLoadComplete(e:Event):void{
var image:Bitmap = e.currentTarget.content;
loader.unload();
addChild(image);
}
É o mesmo caso quando você utiliza o mesmo loader para carregar dois ou mais arquivos.
Exemplo
Tags: as3, tip
Posted in as3 | No Comments »
March 20th, 2009
Decidi criar um google code com minhas classes, ainda nao existe nenhuma documentação mas existem exemplos de uso
Até agora coloquei 4 libs que costumo usar em meus trabalhos:
-DataLib
Classe de loading (exemplo) em fila com armazenamento de dados
-CromelessPlayer
Classe de carregamento e execução de video e playlist
-SoundControl
Classe de som (exemplo). *Ainda precisa de muitos ajustes
-MatrixTween
Classe de tweening baseada no Tweener e TweenLite com controle de tempo independente
Tags: as3, repository
Posted in as3 | No Comments »
March 20th, 2009
Tags: work
Posted in works | 1 Comment »
November 24th, 2008
Tags: work
Posted in works | No Comments »
October 10th, 2008
Tags: work
Posted in works | No Comments »
September 16th, 2008
Para verificar se a placa de som está disponível, veja se a classe SoundChannel não é nula
var sound:Sound = new Sound();
var channel:SoundChannel = sound.play();
if(channel != null){
trace("Soundcard available");
}else{
trace("Soundcard not available");
}
Tags: as3, sound, tip
Posted in as3 | No Comments »
September 3rd, 2008
Um método que eu uso bastante quando preciso de um loop em determinado comprimento de elementos
trace(numberLoop(103754, 3));
//2
trace(numberLoop(686.9384, 17.53));
//3.268399999999957
trace(numberLoop(Math.PI*13/6, Math.PI*2));
//0.5235987755982991 rad - radToDegree == 0.5235987755982991*180/Math.PI -> 30.000000000000014º
trace(numberLoop(-2187.4, 2));
//0.599999999999909
function numberLoop(n:Number, t:Number):Number {
if(t<=0){
throw new Error("Total must be greater thant 0");
}
return (n%t+t)%t;
}
Tags: as3, math, tip
Posted in as3 | No Comments »