DataLib

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

PaperPlane Test

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

plane

Source

Loader issue

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

Google code

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

After a long time

March 20th, 2009

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

Bolsas Havaianas

November 24th, 2008

Bolsas Havaianas (Alpha)
type havahavahava

Pepsi Oficial

October 10th, 2008

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

Soundcard check

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");
}

numberLoop

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;
}