DataLib

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

Posted in as3 | Tagged , | 2 Comments

PaperPlane Test

Primeiros exprerimentos de nada que pode ser tornar algo

Use as setas para controlar o avião
Aumente a velociade pressionando espaço

Demo

plane

Source

Posted in as3 | Tagged , , , , | Leave a comment

Loader issue

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

Posted in as3 | Tagged , | Leave a comment

Google code

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

Posted in as3 | Tagged , | Leave a comment

After a long time

Ultimos trabalhos lançados

ttp://www.kvarch.com/

#24 @ http://www.designcharts.com/ – FEB 8th 2009

http://www.marciokogan.com

#24 @ http://www.designcharts.com/ – MAR 22nd 2009

Também sairam nos seguintes sites:

http://dopeawards.com/
http://iblog.chubzz.com/
http://anotherbookmark.com/
http://spyline.de/
http://www.webdesignfile.com/
http://www.designlicks.com/
http://bm.straightline.jp/

Long nights no sleep

Posted in works | Tagged | 1 Comment

Bolsas Havaianas

Bolsas Havaianas (Alpha)
type havahavahava

Posted in works | Tagged | Leave a comment

Pepsi Oficial

Mais um job lançado
http://www.pepsi.com.br/

Posted in works | Tagged | Leave a comment

Soundcard check

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");
}
Posted in as3 | Tagged , , | Leave a comment

numberLoop

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;
}
Posted in as3 | Tagged , , | Leave a comment