Ejemplo n.º 1
0
    def str_to_xsheet(self, ani_data):
        """
        Update FrameList from animation data.
    
        """

        data = json.loads(ani_data)

        # first check if it's in the legacy non-descriptive JSON or new XDNA format
        if type(data) is dict and data['XDNA']:
            print 'Loading using new file format'
            x = self.xdna

            # right now we only have one animatable layer, hence the first item
            raster_frames = data['xsheet']['raster_frame_lists'][0]

            self.frames = FrameList(len(raster_frames), self.opacities)
            self.framerate = data['xsheet']['framerate']
            self.cleared = True

            for i, d in enumerate(raster_frames):
                if d['idx'] is not None:
                    #cel = self.doc.layers[d['idx']] - this line exceptions with some files if the first frame is a key
                    
                    # cels appear to be numbered from 
                    # 0 in memory, but from 1 on disk...
                    cel = self.doc.layers[d['idx']-1] 
                else:
                    cel = None
                self.frames[i].is_key = d['is_key']
                self.frames[i].description = d['description']
                self.frames[i].cel = cel
                logger.info("loading cel #" + str(i))

        else:
            # load in legacy style
            print 'Loading using old format'
            self.using_legacy = True
            self.frames = FrameList(len(data), self.opacities)
            self.cleared = True
            for i, d in enumerate(data):
                is_key, description, layer_idx = d
                if layer_idx is not None:
                    cel = self.doc.layers[layer_idx]
                else:
                    cel = None
                self.frames[i].is_key = is_key
                self.frames[i].description = description
                self.frames[i].cel = cel
Ejemplo n.º 2
0
 def clear_xsheet(self, init=False):
     self.frames = FrameList(24, self.opacities)
     self.cleared = True