Fix up property imports from SB2 (#196)

* Update target's drawable properties after SB2 import

* Always use `hasOwnProperty` parsing SB2 JSON
This commit is contained in:
Tim Mickel 2016-09-19 14:40:01 -04:00 committed by GitHub
parent 470f686662
commit 13f287e871

View file

@ -51,7 +51,7 @@ function parseScratchObject (object, runtime, topLevel) {
var costume = object.costumes[i]; var costume = object.costumes[i];
// @todo: Make sure all the relevant metadata is being pulled out. // @todo: Make sure all the relevant metadata is being pulled out.
sprite.costumes.push({ sprite.costumes.push({
skin: 'https://cdn.assets.scratch.mit.edu/internalapi/asset/' skin: 'https://cdn.assets.scratch.mit.edu/internalapi/asset/'
+ costume.baseLayerMD5 + '/get/', + costume.baseLayerMD5 + '/get/',
name: costume.costumeName, name: costume.costumeName,
bitmapResolution: costume.bitmapResolution, bitmapResolution: costume.bitmapResolution,
@ -68,26 +68,27 @@ function parseScratchObject (object, runtime, topLevel) {
var target = sprite.createClone(); var target = sprite.createClone();
// Add it to the runtime's list of targets. // Add it to the runtime's list of targets.
runtime.targets.push(target); runtime.targets.push(target);
if (object.scratchX) { if (object.hasOwnProperty('scratchX')) {
target.x = object.scratchX; target.x = object.scratchX;
} }
if (object.scratchY) { if (object.hasOwnProperty('scratchY')) {
target.y = object.scratchY; target.y = object.scratchY;
} }
if (object.direction) { if (object.hasOwnProperty('direction')) {
target.direction = object.direction; target.direction = object.direction;
} }
if (object.scale) { if (object.hasOwnProperty('scale')) {
// SB2 stores as 1.0 = 100%; we use % in the VM. // SB2 stores as 1.0 = 100%; we use % in the VM.
target.size = object.scale * 100; target.size = object.scale * 100;
} }
if (object.visible) { if (object.hasOwnProperty('visible')) {
target.visible = object.visible; target.visible = object.visible;
} }
if (object.currentCostumeIndex) { if (object.hasOwnProperty('currentCostumeIndex')) {
target.currentCostume = object.currentCostumeIndex; target.currentCostume = object.currentCostumeIndex;
} }
target.isStage = topLevel; target.isStage = topLevel;
target.updateAllDrawableProperties();
// The stage will have child objects; recursively process them. // The stage will have child objects; recursively process them.
if (object.children) { if (object.children) {
for (var j = 0; j < object.children.length; j++) { for (var j = 0; j < object.children.length; j++) {