PDA

View Full Version : Memory leaks issues


kminev
08-18-2008, 10:05 PM
I have multiple responders that are wired up to functions which are calling my result event listeners. I was wondering is there a way I can remove my event listeners after they done processing?

Here is a snippet of my code:

private var service:NfsService = new NfsService;


private function init():void {

//chartBox.visible = false;
comboTraders.enabled = false;
comboGateways.enabled = false;
dtFieldStart.enabled = false;
txtOrderNum.enabled = false;
orNoCombo.enabled = false;
btnLookup.enabled = false;
btnGetChart.enabled = false;
btnClr.enabled = false;
wtog.enabled = false;
wtoe.enabled = false;
gtoe.enabled = false;
wtog.visible = false;
wtoe.visible = false;
gtoe.visible = false;

//Fill combo boxes
service.getAccounts.addResponder(getAccountsOnResu lt);
service.getTradersByAcc.addResponder(getTradersOnR esult);
service.getFlavorsByAcc.addResponder(getFlavorsByA ccOnResult);
service.getFlavorsByTrdID.addResponder(getFlavorsB yTrdOnResult);
//Fill chart
service.getDataByAccByDateRange.addResponder(getDa taByAccDate);

//service.getDataByTrdByDateRange.addResponder(getDa taByTrdDate);
//service.getDataByAccByDateRangeExch.addResponder(g etDataByAccExchDate);
//service.getDataByTrdByDateRangeExch.addResponder(g etDataByTrdExchDate);

displayLoadWindow(true);
service.getAccounts.send();


private function getAccountsOnResult(e:GetAccountsResultEvent):void {

var xml:XMLList = new XMLList(e.result);
comboAccounts.dataProvider = xml.children();
displayLoadWindow(false);

//Can I remove my listener after done processing here to assure not memory leaks will occur?
}



Thanks in advance

jellystones
08-21-2008, 03:10 PM
Does the following work?

private function getAccountsOnResult(e:GetAccountsResultEvent):void {

var xml:XMLList = new XMLList(e.result);
comboAccounts.dataProvider = xml.children();
displayLoadWindow(false);

//Can I remove my listener after done processing here to assure not memory leaks will occur?
e.target.removeResponder(getAccountsOnResult);
}


BTW, you dont really need to worry about memory leaks as AS2/3 ave garbage collectors. Just make sure after you are done with a variable you set it to null, and let the garbage collector take care of the rest.