import com.stevensacks.utils.ObservableClass;
import mx.utils.Delegate;
class com.stevensacks.galapagos.assets.AbstractAsset extends ObservableClass
{
public var id:String;
private var _src:String;
private var _loaded:Boolean;
private var _type:String;
private var progressInterval:Number;
function AbstractAsset()
{
//
}
public function set src(s:String):Void
{
_src = s;
_type = String(_src.split(".").pop()).toUpperCase();
}
public function get src():String
{
return _src;
}
public function get loaded():Boolean
{
return _loaded;
}
public function get type():String
{
return _type;
}
private function loadBegin():Void
{
clearInterval(progressInterval);
progressInterval = setInterval(this, "updateProgress", 10);
}
private function updateProgress():Void
{
var bLoaded:Number = getBytesLoaded();
var bTotal:Number = getBytesTotal();
var perc:Number = Math.round((bLoaded / bTotal) * 100);
dispatchEvent({type:"progress", loaded:bLoaded, total:bTotal, perc:perc});
if (bTotal > 4 && perc == 100) loadComplete();
}
private function loadComplete():Void
{
clearInterval(progressInterval);
_loaded = true;
dispatchEvent({type:"complete"});
}
public function load():Void {}
private function getBytesLoaded():Number {}
private function getBytesTotal():Number {}
}