From 3c789a8bd21b6ad7bb45ce19b710688283ab2128 Mon Sep 17 00:00:00 2001 From: Mike Thomas Date: Tue, 17 Aug 2010 22:41:27 +0000 Subject: [PATCH] We can't actually share a MultiFrameBitmap across characters since it's a displayobject and can only be in the display tree once. So, let's clone it. git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@988 ed5b42cb-e716-0410-a449-f6a68f950b19 --- src/as/com/threerings/cast/CompositedActionFrames.as | 4 ++-- src/as/com/threerings/cast/MultiFrameBitmap.as | 8 ++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/as/com/threerings/cast/CompositedActionFrames.as b/src/as/com/threerings/cast/CompositedActionFrames.as index 6b2e992a..ad3d96ce 100644 --- a/src/as/com/threerings/cast/CompositedActionFrames.as +++ b/src/as/com/threerings/cast/CompositedActionFrames.as @@ -88,12 +88,12 @@ public class CompositedActionFrames createFrames(orient, function(disp :MultiFrameBitmap) :void { _frameCache.put(key, disp); for each (var func :Function in listeners) { - func(disp); + func(disp.clone()); } }); } } else { - callback(disp); + callback(disp.clone()); } } diff --git a/src/as/com/threerings/cast/MultiFrameBitmap.as b/src/as/com/threerings/cast/MultiFrameBitmap.as index 55536c42..7146d27b 100644 --- a/src/as/com/threerings/cast/MultiFrameBitmap.as +++ b/src/as/com/threerings/cast/MultiFrameBitmap.as @@ -36,6 +36,7 @@ public class MultiFrameBitmap extends Sprite { _frames = frames; _bitmap = new Bitmap(); + _fps = fps; _frameRate = fps / 1000.0; addChild(_bitmap); setFrame(0); @@ -90,6 +91,11 @@ public class MultiFrameBitmap extends Sprite } } + public function clone () :MultiFrameBitmap + { + return new MultiFrameBitmap(_frames, _fps); + } + protected var _frames :Array; protected var _bitmap :Bitmap; @@ -98,6 +104,8 @@ public class MultiFrameBitmap extends Sprite protected var _frameRate :Number; + protected var _fps :Number; + protected var _curFrameIndex :int = -1; } } \ No newline at end of file