openfl
Version:
A fast, productive library for 2D cross-platform development.
402 lines (385 loc) • 13.8 kB
JavaScript
// Class: openfl.utils.Assets
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = require("./../../hxClasses_stub").default;
var $hxEnums = require("./../../hxEnums_stub").default;
var $import = require("./../../import_stub").default;
var $bind = require("./../../bind_stub").default;
function openfl_utils_AssetCache() {return require("./../../openfl/utils/AssetCache");}
function openfl_events_EventDispatcher() {return require("./../../openfl/events/EventDispatcher");}
function haxe_ds_StringMap() {return require("./../../haxe/ds/StringMap");}
function lime_utils_Assets() {return require("./../../lime/utils/Assets");}
function openfl_display_BitmapData() {return require("./../../openfl/display/BitmapData");}
function openfl_utils__$ByteArray_ByteArray_$Impl_$() {return require("./../../openfl/utils/_ByteArray/ByteArray_Impl_");}
function openfl_text_Font() {return require("./../../openfl/text/Font");}
function HxOverrides() {return require("./../../HxOverrides");}
function openfl_utils_AssetLibrary() {return require("./../../openfl/utils/AssetLibrary");}
function lime_utils_Log() {return require("./../../lime/utils/Log");}
function openfl_media_Sound() {return require("./../../openfl/media/Sound");}
function openfl_display_Sprite() {return require("./../../openfl/display/Sprite");}
function lime_app_Promise() {return require("./../../lime/app/Promise");}
function lime_app_Future() {return require("./../../lime/app/Future");}
function Type() {return require("./../../Type");}
function openfl_events_Event() {return require("./../../openfl/events/Event");}
// Constructor
var Assets = function(){}
// Meta
Assets.__name__ = "openfl.utils.Assets";
Assets.__isInterface__ = false;
Assets.prototype = {
};
Assets.prototype.__class__ = Assets.prototype.constructor = $hxClasses["openfl.utils.Assets"] = Assets;
// Init
// Statics
Assets.addEventListener = function(type,listener,useCapture,priority,useWeakReference) {
if(useWeakReference == null) {
useWeakReference = false;
}
if(priority == null) {
priority = 0;
}
if(useCapture == null) {
useCapture = false;
}
if(!(lime_utils_Assets().default).onChange.has(Assets.LimeAssets_onChange)) {
(lime_utils_Assets().default).onChange.add(Assets.LimeAssets_onChange);
}
Assets.dispatcher.addEventListener(type,listener,useCapture,priority,useWeakReference);
}
Assets.dispatchEvent = function(event) {
return Assets.dispatcher.dispatchEvent(event);
}
Assets.exists = function(id,type) {
return (lime_utils_Assets().default).exists(id,type);
}
Assets.getBitmapData = function(id,useCache) {
if(useCache == null) {
useCache = true;
}
if(useCache && Assets.cache.get_enabled() && Assets.cache.hasBitmapData(id)) {
var bitmapData = Assets.cache.getBitmapData(id);
if(Assets.isValidBitmapData(bitmapData)) {
return bitmapData;
}
}
var image = (lime_utils_Assets().default).getImage(id,false);
if(image != null) {
var bitmapData1 = (openfl_display_BitmapData().default).fromImage(image);
if(useCache && Assets.cache.get_enabled()) {
Assets.cache.setBitmapData(id,bitmapData1);
}
return bitmapData1;
}
return null;
}
Assets.getBytes = function(id) {
return (openfl_utils__$ByteArray_ByteArray_$Impl_$().default).fromBytes((lime_utils_Assets().default).getBytes(id));
}
Assets.getFont = function(id,useCache) {
if(useCache == null) {
useCache = true;
}
if(useCache && Assets.cache.get_enabled() && Assets.cache.hasFont(id)) {
return Assets.cache.getFont(id);
}
var limeFont = (lime_utils_Assets().default).getFont(id,false);
if(limeFont != null) {
var font = new (openfl_text_Font().default)();
font.__fromLimeFont(limeFont);
if(useCache && Assets.cache.get_enabled()) {
Assets.cache.setFont(id,font);
}
return font;
}
return new (openfl_text_Font().default)();
}
Assets.getLibrary = function(name) {
return (lime_utils_Assets().default).getLibrary(name);
}
Assets.getMovieClip = function(id) {
var libraryName = id.substring(0,id.indexOf(":"));
var symbolName = (HxOverrides().default).substr(id,id.indexOf(":") + 1,null);
var limeLibrary = Assets.getLibrary(libraryName);
if(limeLibrary != null) {
if(((limeLibrary) instanceof (openfl_utils_AssetLibrary().default))) {
var library = limeLibrary;
if(library.exists(symbolName,"MOVIE_CLIP")) {
if(library.isLocal(symbolName,"MOVIE_CLIP")) {
return library.getMovieClip(symbolName);
} else {
(lime_utils_Log().default).error("MovieClip asset \"" + id + "\" exists, but only asynchronously",{ fileName : "../node_modules/openfl-haxelib/src/openfl/utils/Assets.hx", lineNumber : 242, className : "openfl.utils.Assets", methodName : "getMovieClip"});
return null;
}
}
}
(lime_utils_Log().default).error("There is no MovieClip asset with an ID of \"" + id + "\"",{ fileName : "../node_modules/openfl-haxelib/src/openfl/utils/Assets.hx", lineNumber : 248, className : "openfl.utils.Assets", methodName : "getMovieClip"});
} else {
(lime_utils_Log().default).error("There is no asset library named \"" + libraryName + "\"",{ fileName : "../node_modules/openfl-haxelib/src/openfl/utils/Assets.hx", lineNumber : 252, className : "openfl.utils.Assets", methodName : "getMovieClip"});
}
return null;
}
Assets.getMusic = function(id,useCache) {
if(useCache == null) {
useCache = true;
}
return Assets.getSound(id,useCache);
}
Assets.getPath = function(id) {
return (lime_utils_Assets().default).getPath(id);
}
Assets.getSound = function(id,useCache) {
if(useCache == null) {
useCache = true;
}
if(useCache && Assets.cache.get_enabled() && Assets.cache.hasSound(id)) {
var sound = Assets.cache.getSound(id);
if(Assets.isValidSound(sound)) {
return sound;
}
}
var buffer = (lime_utils_Assets().default).getAudioBuffer(id,false);
if(buffer != null) {
var sound1 = (openfl_media_Sound().default).fromAudioBuffer(buffer);
if(useCache && Assets.cache.get_enabled()) {
Assets.cache.setSound(id,sound1);
}
return sound1;
}
return null;
}
Assets.getText = function(id) {
return (lime_utils_Assets().default).getText(id);
}
Assets.hasEventListener = function(type) {
return Assets.dispatcher.hasEventListener(type);
}
Assets.hasLibrary = function(name) {
return (lime_utils_Assets().default).hasLibrary(name);
}
Assets.initBinding = function(className,instance) {
if(Assets.libraryBindings.exists(className)) {
var library = Assets.libraryBindings.get(className);
if(instance == null) {
(openfl_display_Sprite().default).__constructor = function(instance1) {
instance1.__bind(library,className);
};
} else {
(openfl_display_Sprite().default).__constructor = null;
instance.__bind(library,className);
}
} else {
(lime_utils_Log().default).warn("No asset is registered as \"" + className + "\"",{ fileName : "../node_modules/openfl-haxelib/src/openfl/utils/Assets.hx", lineNumber : 408, className : "openfl.utils.Assets", methodName : "initBinding"});
}
}
Assets.isLocal = function(id,type,useCache) {
if(useCache == null) {
useCache = true;
}
if(useCache && Assets.cache.get_enabled()) {
if(type == "IMAGE" || type == null) {
if(Assets.cache.hasBitmapData(id)) {
return true;
}
}
if(type == "FONT" || type == null) {
if(Assets.cache.hasFont(id)) {
return true;
}
}
if(type == "SOUND" || type == "MUSIC" || type == null) {
if(Assets.cache.hasSound(id)) {
return true;
}
}
}
var libraryName = id.substring(0,id.indexOf(":"));
var symbolName = (HxOverrides().default).substr(id,id.indexOf(":") + 1,null);
var library = Assets.getLibrary(libraryName);
if(library != null) {
return library.isLocal(symbolName,type);
}
return false;
}
Assets.isValidBitmapData = function(bitmapData) {
return bitmapData != null && bitmapData.image != null;
}
Assets.isValidSound = function(sound) {
return true;
}
Assets.list = function(type) {
return (lime_utils_Assets().default).list(type);
}
Assets.loadBitmapData = function(id,useCache) {
if(useCache == null) {
useCache = true;
}
if(useCache == null) {
useCache = true;
}
var promise = new (lime_app_Promise().default)();
if(useCache && Assets.cache.get_enabled() && Assets.cache.hasBitmapData(id)) {
var bitmapData = Assets.cache.getBitmapData(id);
if(Assets.isValidBitmapData(bitmapData)) {
promise.complete(bitmapData);
return promise.future;
}
}
(lime_utils_Assets().default).loadImage(id,false).onComplete(function(image) {
if(image != null) {
var bitmapData1 = (openfl_display_BitmapData().default).fromImage(image);
if(useCache && Assets.cache.get_enabled()) {
Assets.cache.setBitmapData(id,bitmapData1);
}
promise.complete(bitmapData1);
} else {
promise.error("[Assets] Could not load Image \"" + id + "\"");
}
}).onError($bind(promise,promise.error)).onProgress($bind(promise,promise.progress));
return promise.future;
}
Assets.loadBytes = function(id) {
var promise = new (lime_app_Promise().default)();
var future = (lime_utils_Assets().default).loadBytes(id);
future.onComplete(function(bytes) {
promise.complete((openfl_utils__$ByteArray_ByteArray_$Impl_$().default).fromBytes(bytes));
});
future.onProgress(function(progress,total) {
promise.progress(progress,total);
});
future.onError(function(msg) {
promise.error(msg);
});
return promise.future;
}
Assets.loadFont = function(id,useCache) {
if(useCache == null) {
useCache = true;
}
if(useCache == null) {
useCache = true;
}
var promise = new (lime_app_Promise().default)();
if(useCache && Assets.cache.get_enabled() && Assets.cache.hasFont(id)) {
var tmp = Assets.cache.getFont(id);
promise.complete(tmp);
return promise.future;
}
(lime_utils_Assets().default).loadFont(id).onComplete(function(limeFont) {
var font = new (openfl_text_Font().default)();
font.__fromLimeFont(limeFont);
if(useCache && Assets.cache.get_enabled()) {
Assets.cache.setFont(id,font);
}
promise.complete(font);
}).onError($bind(promise,promise.error)).onProgress($bind(promise,promise.progress));
return promise.future;
}
Assets.loadLibrary = function(name) {
return (lime_utils_Assets().default).loadLibrary(name).then(function(library) {
var _library = null;
if(library != null) {
if(((library) instanceof (openfl_utils_AssetLibrary().default))) {
_library = library;
} else {
(lime_utils_Assets().default).libraries.remove(name);
_library = new (openfl_utils_AssetLibrary().default)();
_library.__proxy = library;
(lime_utils_Assets().default).registerLibrary(name,_library);
}
}
return (lime_app_Future().default).withValue(_library);
});
}
Assets.loadMusic = function(id,useCache) {
if(useCache == null) {
useCache = true;
}
if(useCache == null) {
useCache = true;
}
var future = new (lime_app_Future().default)(function() {
return Assets.getMusic(id,useCache);
});
return future;
}
Assets.loadMovieClip = function(id) {
var promise = new (lime_app_Promise().default)();
var libraryName = id.substring(0,id.indexOf(":"));
var symbolName = (HxOverrides().default).substr(id,id.indexOf(":") + 1,null);
var limeLibrary = Assets.getLibrary(libraryName);
if(limeLibrary != null) {
if(((limeLibrary) instanceof (openfl_utils_AssetLibrary().default))) {
var library = limeLibrary;
if(library.exists(symbolName,"MOVIE_CLIP")) {
promise.completeWith(library.loadMovieClip(symbolName));
return promise.future;
}
}
promise.error("[Assets] There is no MovieClip asset with an ID of \"" + id + "\"");
} else {
promise.error("[Assets] There is no asset library named \"" + libraryName + "\"");
}
return promise.future;
}
Assets.loadSound = function(id,useCache) {
if(useCache == null) {
useCache = true;
}
if(useCache == null) {
useCache = true;
}
var promise = new (lime_app_Promise().default)();
(lime_utils_Assets().default).loadAudioBuffer(id,useCache).onComplete(function(buffer) {
if(buffer != null) {
var sound = (openfl_media_Sound().default).fromAudioBuffer(buffer);
if(useCache && Assets.cache.get_enabled()) {
Assets.cache.setSound(id,sound);
}
promise.complete(sound);
} else {
promise.error("[Assets] Could not load Sound \"" + id + "\"");
}
}).onError($bind(promise,promise.error)).onProgress($bind(promise,promise.progress));
return promise.future;
}
Assets.loadText = function(id) {
var future = (lime_utils_Assets().default).loadText(id);
return future;
}
Assets.registerBinding = function(className,library) {
Assets.libraryBindings.set(className,library);
}
Assets.registerLibrary = function(name,library) {
(lime_utils_Assets().default).registerLibrary(name,library);
}
Assets.removeEventListener = function(type,listener,capture) {
if(capture == null) {
capture = false;
}
Assets.dispatcher.removeEventListener(type,listener,capture);
}
Assets.resolveClass = function(name) {
return (Type().default).resolveClass(name);
}
Assets.resolveEnum = function(name) {
var value = (Type().default).resolveEnum(name);
return value;
}
Assets.unloadLibrary = function(name) {
(lime_utils_Assets().default).unloadLibrary(name);
}
Assets.unregisterBinding = function(className,library) {
if(Assets.libraryBindings.exists(className) && Assets.libraryBindings.get(className) == library) {
Assets.libraryBindings.remove(className);
}
}
Assets.LimeAssets_onChange = function() {
Assets.dispatchEvent(new (openfl_events_Event().default)("change"));
}
Assets.cache = new (openfl_utils_AssetCache().default)()
Assets.dispatcher = new (openfl_events_EventDispatcher().default)()
Assets.libraryBindings = new (haxe_ds_StringMap().default)()
// Export
exports.default = Assets;