Кажется, что если flash.net.NetConnection создается и подключается к URL-адресу HTTP (например, к шлюзу AMFPHP), этот экземпляр никогда не извлекается сборщиком мусора даже после того, как он был закрыт, а единственная ссылка имеет значение null.
С другой стороны, если экземпляр подключен к null (что было бы сделано при воспроизведении файлов видео/mp3), экземпляр удаляется из памяти.
Чтобы уточнить, следующее соединение останется в памяти:
var stickyConn:NetConnection = new NetConnection();
stickyConn.connect("http://myserver/amfphp/gateway.php");
stickyConn.close();
stickyConn = null;
Принимая во внимание, что следующее соединение будет немедленно удалено из памяти:
var tempConn:NetConnection = new NetConnection();
tempConn.connect(null);
tempConn.close();
tempConn = null;
Некоторые вещи, которые я уже пытался решить эту проблему:
- установите для клиента пустой объект (поскольку значением клиента по умолчанию является сам NetConnection)
- прежде чем закрыть соединение, позвоните
connect(null)
- после закрытия соединения вызовите
connect(null)
и снова закройте его.
Кто-нибудь сталкивался с этой проблемой раньше? Есть ли этому решение?