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