Mercurial > MadButterfly
diff pyink/frameline.py @ 972:8a7e5914a84b
Add addScenes to generate scene definition according to the current framelines.
author | wycc |
---|---|
date | Sat, 20 Nov 2010 11:44:19 +0800 |
parents | a4c0aff915ad |
children | 5cefabccfb76 |
line wrap: on
line diff
--- a/pyink/frameline.py Fri Nov 19 23:54:24 2010 +0800 +++ b/pyink/frameline.py Sat Nov 20 11:44:19 2010 +0800 @@ -16,6 +16,7 @@ self.left_tween = False self.right_tween = False self.right_tween_type = 0 + self.ref='' pass pass @@ -401,7 +402,7 @@ last_pos = last_pos + 1 pass - return first_pox, last_pos + return first_pos, last_pos ## \brief Redraw a frame specified by an index. # @@ -440,10 +441,9 @@ for i in range(first_pos, last_pos + 1): key = self._keys[i] - print "frame %d type=%d" % (key.idx,key.right_tween_type) if key.left_tween is False or lastkey.right_tween_type != frameline._tween_type_none: self._draw_keyframe(key.idx) - lasykey = key + lastkey = key pass pass else: # not in tween @@ -504,7 +504,7 @@ # # A key frame is the frame that user specify actions. For # example, move a object or add new objects at the frame. - def add_keyframe(self, idx): + def add_keyframe(self, idx,ref): key_indic = [key.idx for key in self._keys] if idx in key_indic: return @@ -514,6 +514,7 @@ insert_pos = key_indic.index(idx) key = keyframe(idx) + key.ref = ref self._keys[insert_pos:insert_pos] = [key] if insert_pos > 0 and self._keys[insert_pos - 1].right_tween: key.left_tween = True @@ -535,7 +536,6 @@ break if not found: return key = self._keys[idx] - del self._keys[idx] if key.right_tween ^ key.left_tween: # @@ -558,6 +558,7 @@ self._redraw_frame(idx) pass + del self._keys[idx] self._draw_active() pass @@ -607,6 +608,24 @@ self._keys = [] pass + def addScenes(self,rdoc,node): + for i in range(0,len(self._keys)): + key = self._keys[i] + if key.left_tween is True: return + if key.right_tween is True: + ss = rdoc.createElement("ns0:scene") + node.appendChild(ss) + print "[%d:%d]" % (key.idx, self._keys[i+1].idx-1) + ss.setAttribute("start", str(key.idx+1),True) + ss.setAttribute("ref",key.ref.attribute("id"),True) + ss.setAttribute("end", str(self._keys[i+1].idx+1),True) + else: + ss = rdoc.createElement("ns0:scene") + node.appendChild(ss) + ss.setAttribute("start", str(key.idx+1),True) + ss.setAttribute("ref",key.ref.attribute("id"),True) + + ## \brief Start future drawing actions # def start_drawing(self):