Open GoogleCodeExporter opened 9 years ago
hmm, typo : the revision of MDIManager.as that introduced the event cached is
rev 152
Original comment by bruno.ba...@gmail.com
on 8 Jan 2009 at 9:06
Original comment by dmcc...@gmail.com
on 8 Jan 2009 at 6:15
Our application also slow-down. When we open multiple mdi window for long time,
I checked on task manager and memory used by application keeps on increasing.
Did you get any solution for this? the solution explained above is not cleared
to us.
Original comment by rajkr.ch...@gmail.com
on 15 Jun 2009 at 11:28
thanks, it was really helpful :)
Original comment by swi...@gmail.com
on 24 Sep 2009 at 11:17
[deleted comment]
Thanks I was able to test your fix and it works partially now. If I start with
say 5
MDI windows and remove 1. then the I have 5 objects left in the memory (even
after
forcing the garbage collector in profiler). I would expect it to have 4
objects. Then
I tried deleting my other window and now i am left out with 4 objects. (where I
would
be expecting 3 objects).
Below is the change that I did in MDIManager.as
// add this event to collection for lookup in the
effect handler
//mgrEventCollection.addItem(mgrEvent);
// listen for start and end of effect
mgrEvent.effect.addEventListener(EffectEvent.EFFECT_START, onMgrEffectEvent)
mgrEvent.effect.addEventListener(EffectEvent.EFFECT_END, onMgrEffectEvent);
//mgrEvent.effect.play();
var instances:Array = mgrEvent.effect.play();
if (instances && instances.length>0) {
mgrEventCollection.addItem(mgrEvent);
}
Please let me know if I am missing anything here.
Original comment by veenache...@gmail.com
on 19 Oct 2009 at 7:14
Hello, there's any working roundtrip to this bug?
Thanks!
Original comment by carlos.s...@gmail.com
on 25 Nov 2010 at 6:31
// Mi own solution
private function onCloseEffectEnd(event:EffectEvent):void
{
var window : MDIWindow = event.effectInstance.target as MDIWindow;
remove(window);
// SOLUTION remove all cached effect events for the window on window close
var cursor : IViewCursor = mgrEventCollection.createCursor();
var dontMoveNext : Boolean = false;
do {
if (cursor.current) {
var mgrEvent:MDIManagerEvent = cursor.current as MDIManagerEvent;
if (mgrEvent.window === window) {
cursor.remove();
dontMoveNext = true;
} else {
dontMoveNext = false;
}
} else {
dontMoveNext = false;
}
} while (dontMoveNext || cursor.moveNext());
}
Original comment by carlos.s...@gmail.com
on 25 Nov 2010 at 7:57
[deleted comment]
I believe the issue is that in MDIEffectsDescriptorBase there are a bunch of
different methods which will return Effect objects. This class is abstract
should never be instantiated according to the flex api. What will happen is the
effects will never get cleaned up because they will never play correctly. I
would recommend either not returning an effect, or returning a concrete effect
in order for the play method to actually work properly.
Original comment by mungl...@gmail.com
on 27 Dec 2012 at 1:05
Original issue reported on code.google.com by
bruno.ba...@gmail.com
on 8 Jan 2009 at 9:01Attachments: