Значит структура классов такова, из Controller в UI_Connection, из UI_Connection в UI_NewGame, но вопрос чуток в другом.
Смотрю на примере Комбобоксов. "из Controller в UI_Connection" - их нету на рабочей области, профайлер показывает, что их действительно нету в памяти, - все ок.
Потом "из UI_Connection в UI_NewGame" - появились на сцене 3 комбобокса, профайлер показывает, что они есть - все ок.
потом вот что делается в классе "UI_NewGame" - там кнопочка при нажатии на которую осуществляется коннект и передается управление классу Constructor который все удаляет и создает новый обьект.
НО! Все элементы интерфейса лежат в памяти. Почему?
Вот структура класса - там ничего сложного посмотрите пож

Код AS3:
package
{
import fl.controls.Button;
import fl.controls.ComboBox;
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.net.NetConnection;
import flash.events.NetStatusEvent;
import flash.text.TextField;
import flash.utils.Timer;
import flash.events.TimerEvent;
/**
* ...
* @author webdev
*/
public class UI_NewGame extends MovieClip
{
private var anFrame:MaskFrame;
private var cont:Sprite;
private var btn_Create:Button;
private var _uiConnection:UI_Connection;
private var _controller:Controller;
private var comboSpCount:ComboBox;
private var comboSpStake:ComboBox;
private var comboSpStartGeld:ComboBox;
private var array:Array = new Array(3);
private var netCon:NetConnection;
private var _fmsConnection:FMS_Connect;
private var urlName:String;
private var appName:String;
public function UI_NewGame(_uiConnection:UI_Connection, _controller:Controller, urlName:String, appName:String) {
trace("<--UI_NewGame::UI_NewGame-->");
this._controller = _controller;
this._uiConnection = _uiConnection;
this.urlName = urlName;
this.appName = appName;
setInterface();
}
private function setInterface():void {
trace ("func___setInterface");
cont = new Sprite();
setFrame();
}
private function setFrame():void {
trace("func___setFrame");
this.anFrame = new MaskFrame();
this.addChild(this.cont);
this.anFrame.x = 50;
this.anFrame.y = 200;
this.cont.addChild(this.anFrame);
var timer:Timer = new Timer(1400, 1);
timer.start();
timer.addEventListener(TimerEvent.TIMER, comboSpCnt);
}
private function comboSpCnt(event:TimerEvent):void {
trace("func___comboSpCount");
comboSpCount = new ComboBox();
this.comboSpCount.x = 125;
this.comboSpCount.y = 217;
comboLabel(100, 200, "Waehle die Anzahl der Spieler");
for (var i:int = 2; i <9; i++) {
this.comboSpCount.addItem({label:i, data:i});
}
this.cont.addChild(this.comboSpCount);
var timer:Timer = new Timer (400, 1);
timer.start();
timer.addEventListener(TimerEvent.TIMER, comboSpSt);
(event.target as Timer).removeEventListener(TimerEvent.TIMER, comboSpCnt);
}
private function comboSpSt(event:TimerEvent):void {
trace("func___comboSpStake");
this.comboSpStake = new ComboBox();
this.comboSpStake.x = 125;
this.comboSpStake.y = 352;
comboLabel(100, 335, "Waehle den maximalen Einsatz $");
for (var i:int = 1; i <=10; i++) {
this.comboSpStake.addItem({label:i, data:i});
}
this.cont.addChild(this.comboSpStake);
var timer:Timer = new Timer (400, 1);
timer.start();
timer.addEventListener(TimerEvent.TIMER, comboSpStGeld);
(event.target as Timer).removeEventListener(TimerEvent.TIMER, comboSpSt);
}
private function comboSpStGeld(event:TimerEvent):void {
trace("func___comboSpStartGeld");
this.comboSpStartGeld = new ComboBox();
this.comboSpStartGeld.x = 125;
this.comboSpStartGeld.y = 482;
comboLabel(100, 465, " $ Max");
for (var i:int = 1; i <=5; i++) {
this.comboSpStartGeld.addItem({label:i, data:i});
}
this.cont.addChild(this.comboSpStartGeld);
var timer:Timer = new Timer (400, 1);
timer.start();
timer.addEventListener(TimerEvent.TIMER, btn_NewGame);
(event.target as Timer).removeEventListener(TimerEvent.TIMER, comboSpStGeld);
}
private function btn_NewGame(event:TimerEvent):void {
trace ("func___btn_NewGame");
this.btn_Create = new Button();
this.btn_Create.label = "Create";
this.btn_Create.x = 125;
this.btn_Create.y = 620;
this.cont.addChild(this.btn_Create);
this.btn_Create.addEventListener(MouseEvent.CLICK, btn_Create_clk);
(event.target as Timer).removeEventListener(TimerEvent.TIMER, btn_NewGame);
}
private function comboLabel(_x:int, _y:int, str:String):void {
trace ("func___comboLabel");
var label:TextField = new TextField();
label.x = _x;
label.y = _y;
label.textColor = 0xFFFFFF;
label.width = 150;
label.text = str;
this.cont.addChild(label);
}
private function btn_Create_clk(event:MouseEvent):void {
trace ("func___btn_Create_clk");
this._fmsConnection = new FMS_Connect(urlName, appName);
this.netCon = this._fmsConnection.connecting();
this.netCon.addEventListener('netStatus', netStatusHandler);
}
private function netStatusHandler(event:NetStatusEvent):void {
trace("func___netStatusHandler");
if (event.info.code == "NetConnection.Connect.Success")
setConnected();
else
_uiConnection.setError();
}
private function setConnected():void {
trace("func___setConnected1");
eventRemove();
this._controller.uiLogIn();
}
private function eventRemove():void {
trace("function___eventRemove");
this.netCon.removeEventListener('netStatus', netStatusHandler);
this.btn_Create.addEventListener(MouseEvent.CLICK, btn_Create_clk);
}
Вот функции из контроллера.

Код AS3:
public function uiLogIn():void {
trace("func___uiLogIn");
destructor();
_uigame = new UI_Game();
this.addChild(_uigame);
}
private function destructor():void {
trace("func___destructorC");
while (numChildren)
removeChildAt(0);
}
Огромное спасибо за подсказку, и вообще - я правильно передаю управление приложением обратно????