DataLib

During my last jobs I wrote a queue loader class that stores all loaded files for future requests.

DataLib

Overview:

-Static

Since it’s a static class, any loaded file can be used from any parto of the app, even from external SWF files.

-Load queue

Any file must be add to a load queue passing the url and type of file to be loaded. The file can be added at the end of the queue or in a especific position.

DataLib.addItem("file.swf", DataLib.TYPE_SWF);
DataLib.addItemAt("file.png", 0, DataLib.TYPE_PNG);
DataLib.addItem("file.wav", DataLib.TYPE_BINARY);

Also is possible get the load queue.

var queue:Array = DataLib.queue;

To start loading you must call DataLib.load()
Also it’s possible to pause, resume and close the loading.

DataLib.pause();
DataLib.resume();
DataLib.close();

-Data storage

Every load file is stored for future requisitions. If necessary, files can be deleted freeing memory. Get loaded files using it’s URL.

var image:Bitmap = DataLib.lib[fileURL].data;
 
addChild(image);
 
DataLib.removeItem(fileURL);

-Custom Events

Custom Events cam be added to follow the loading. You can add an event in the class or in a especific item.

*Remember to remove all events from the class to prevent conflicts with other loadings.

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

These are the supported files. You can get embed classes in SWF loaded files using the main movie application domain.

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();

You can get this and other classes using my google code.

http://andreanaya.googlecode.com/svn/trunk/

Theres also an example of usage of this class.

Thanks and I hope this could be usefull for you guys. Any problem or sugestion please tell me.

Anaya

Posted in as3 | Tagged , | 2 Comments

PaperPlane Test

Early experiments of nothing that could become something.

Use the arrows to control the plane
Speed up pressing space

Demo

plane

Source

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

Loader issue


Last friday I was checking Flash Bookmarks and I noticed a question about Loader.
While ago I needed to load a file using a Loader and then add it to the stage. However it raised an error.

ArgumentError: Error #2025 : The supplied DisplayObject must be a child of the caller.


To solve the problem I needed to extract the conten in a var and then call a loader.unload() before add it to the stage.

function onLoadComplete(e:Event):void{
	var image:Bitmap = e.currentTarget.content;
	loader.unload();
	addChild(image);
}


It’s the same case when you try to load two or more files using the same loader.


Example

Posted in as3 | Tagged , | Leave a comment

Google code


I’ve decided to create a google code with my classes, there’s no docs yet but there’s some usage examples


So far there’s 4 libs that I use in my works:

-DataLib


Loader class (example) usign queue

-CromelessPlayer


Video class with playlist

-SoundControl


Sound class (example). *Still need ajustments

-MatrixTween


Tweening class based on Tweener and TweenLite with time control

Posted in as3 | Tagged , | Leave a comment

After a long time


Last jobs

http://www.kvarch.com/

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

http://www.marciokogan.com

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


Also @:

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


One more job launched
http://www.pepsi.com.br/

Posted in works | Tagged | Leave a comment

Soundcard check


To check if the soundcard is available, test if the SoundChannel class is not null

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


Here is a method that I use a lot when I need to loop a length of any kind

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