mirror of
https://github.com/piskelapp/piskel.git
synced 2023-08-10 21:12:52 +03:00
43 lines
1.6 KiB
JavaScript
43 lines
1.6 KiB
JavaScript
(function () {
|
|
var ns = $.namespace('pskl.utils');
|
|
|
|
ns.PiskelFileUtils = {
|
|
/**
|
|
* Load a piskel from a piskel file.
|
|
* After deserialization is successful, the provided success callback will be called.
|
|
* Success callback is expected to handle 3 arguments : (piskel:Piskel, descriptor:PiskelDescriptor, fps:Number)
|
|
* @param {File} file the .piskel file to load
|
|
* @param {Function} onSuccess Called if the deserialization of the piskel is successful
|
|
* @param {Function} onError NOT USED YET
|
|
*/
|
|
loadFromFile : function (file, onSuccess, onError) {
|
|
pskl.utils.FileUtils.readFile(file, function (content) {
|
|
var rawPiskel = pskl.utils.Base64.toText(content);
|
|
ns.PiskelFileUtils.decodePiskelFile(
|
|
rawPiskel,
|
|
function (piskel, descriptor, fps) {
|
|
// if using Node-Webkit, store the savePath on load
|
|
// Note: the 'path' property is unique to Node-Webkit, and holds the full path
|
|
if (pskl.utils.Environment.detectNodeWebkit()) {
|
|
piskel.savePath = file.path;
|
|
}
|
|
onSuccess(piskel, descriptor, fps);
|
|
},
|
|
onError
|
|
);
|
|
});
|
|
},
|
|
|
|
decodePiskelFile : function (rawPiskel, onSuccess, onError) {
|
|
var serializedPiskel = JSON.parse(rawPiskel);
|
|
var fps = serializedPiskel.piskel.fps;
|
|
var piskel = serializedPiskel.piskel;
|
|
var descriptor = new pskl.model.piskel.Descriptor(piskel.name, piskel.description, true);
|
|
pskl.utils.serialization.Deserializer.deserialize(serializedPiskel, function (piskel) {
|
|
onSuccess(piskel, descriptor, fps);
|
|
});
|
|
}
|
|
|
|
};
|
|
})();
|