//AUGMENT var DSP = (function(dsp){ var width = 1024, height = 600; dsp.DBoneFactory = (function(){ var public = Object.create(null); var enableClock = true; var armatures = []; var skelData = Object.create(null); var loop = function(dt){ dragonBones.WorldClock.clock.advanceTime(dt * public.dtMultiplier); } public.dtMultiplier = 0.001; Object.defineProperty(public, "enableClock", { set: function(val){ enableClock = val; if(enableClock && !dsp.UpdateMgr.hasFrameListener(loop)){ dsp.UpdateMgr.addFrameListener(loop); } if(!enableClock && dsp.UpdateMgr.hasFrameListener(loop)){ dsp.UpdateMgr.removeFrameListener(loop); } }, get: function(){ return enableClock; } }); public.createArmature = function(name){ var newArmature = public.PixiFactory.buildArmature(name); dragonBones.WorldClock.clock.add(newArmature); armatures.push(newArmature); return newArmature; } public.destroyArmature = function(armature){ var index = armatures.indexOf(armature); if(index > -1){ var arm = armatures.splice(index, 1)[0]; dragonBones.WorldClock.clock.remove(arm); arm.dispose(); } } public.destroyAllArmature = function(){ while(armatures.length > 0){ var arm = armatures.pop(); dragonBones.WorldClock.clock.remove(arm); arm.dispose(); } } /** * @param (STRING) imgID texture file(png) * @param (STRING) dataID string file(json) * @param (STRING) SkelID string file(json) */ public.start = function(imgID, dataID, skelID){ public.PixiFactory = new dragonBones.PixiFactory(); public.addToFactory(imgID, dataID, skelID); public.enableClock = true; } public.addToFactory = function(imgID, dataID, skelID){ var textureImg = EHDI.Assets.images[imgID].baseTexture.source; var textureData = EHDI.Assets.fetch(dataID); var skel = EHDI.Assets.fetch(skelID); public.PixiFactory.addTextureAtlas(new dragonBones.TextureAtlas(textureImg, textureData)); public.PixiFactory.addDragonBonesData(dragonBones.DataParser.parseDragonBonesData(skel)); } return public; }()); return dsp; }(DSP || Object.create(null)));