This commit is contained in:
Julian Descottes 2012-08-30 01:16:13 +02:00
parent baa5ea5dc9
commit aaf254cc3f
2 changed files with 63 additions and 14 deletions

View File

@ -15,6 +15,7 @@
</head>
<body>
<div class='debug left-nav'>
<button onclick="piskel.storeSheet()" class="action-button">Save Framesheet</button>
<button id='add-frame-button' class="action-button">
Add a Frame
</button>

View File

@ -3,8 +3,8 @@
// Constants:
TRANSPARENT_COLOR = 'tc',
//TRANSPARENT_COLOR = 'pink',
DEFAULT_PEN_COLOR = '#000000',
PISKEL_SERVICE_URL = 'http://2.piskel-app.appspot.com',
// Configuration:
// Canvas size in pixel size (not dpi related)
@ -50,15 +50,51 @@
var piskel = {
init : function () {
frameSheet = FrameSheetModel.getInstance(framePixelWidth, framePixelHeight);
frameSheet.addEmptyFrame();
this.setActiveFrame(0);
frameSheet.addEmptyFrame();
var frameId = this.getFrameIdFromUrl();
if (frameId) {
this.loadFramesheetFromService(frameId);
} else {
this.finishInit();
}
},
finishInit : function () {
this.initPalette();
this.initDrawingArea();
this.initPreviewSlideshow();
this.initAnimationPreview();
this.initColorPicker();
this.initLocalStorageBackup();
this.initLocalStorageBackup();
this.startAnimation();
},
getFrameIdFromUrl : function() {
var href = window.location.href;
if (href.indexOf('frameId=') != -1) {
console.log(href.substring(href.indexOf('frameId=')+8));
return href.substring(href.indexOf('frameId=')+8);
}
},
loadFramesheetFromService : function (frameId) {
var xhr = new XMLHttpRequest();
xhr.open('GET', PISKEL_SERVICE_URL + '/get?l=' + frameId, true);
xhr.responseType = 'text';
xhr.onload = function(e) {
frameSheet.deserialize(this.responseText);
piskel.finishInit();
};
xhr.onerror = function () {
piskel.finishInit();
};
xhr.send();
},
initLocalStorageBackup: function() {
@ -170,17 +206,7 @@
this.createPreviews();
},
initPreviewSlideshow: function() {
var addFrameButton = $('add-frame-button');
addFrameButton.addEventListener('mousedown', function() {
frameSheet.addEmptyFrame();
piskel.setActiveFrameAndRedraw(frameSheet.getFrameCount() - 1);
});
this.createPreviews();
},
initAnimationPreview : function() {
var scope = this;
var previewAnimationContainer = $('preview-canvas-container');
previewCanvas = document.createElement('canvas');
@ -190,7 +216,10 @@
previewAnimationContainer.appendChild(previewCanvas);
previewCanvas.setAttribute('width', framePixelWidth * previewAnimationCanvasDpi);
previewCanvas.setAttribute('height', framePixelHeight * previewAnimationCanvasDpi);
},
startAnimation : function () {
var scope = this;
var animFPSTuner = document.getElementById("preview-fps");
var animPreviewFPS = parseInt(animFPSTuner.value, 10);
var startPreviewRefresh = function() {
@ -428,6 +457,25 @@
x : x - canvasRect.left,
y : y - canvasRect.top
}
},
storeSheet : function (event) {
var xhr = new XMLHttpRequest();
var formData = new FormData();
formData.append('framesheet_content', frameSheet.serialize());
formData.append('fps_speed', $('preview-fps').value);
xhr.open('POST', PISKEL_SERVICE_URL + "/store", true);
xhr.onload = function(e) {
if (this.status == 200) {
alert("stored key : " + this.responseText);
}
};
xhr.send(formData);
event.stopPropagation();
event.preventDefault();
return false;
}
};