Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 10.05.2012, 11:49
Dr_Bra вне форума Посмотреть профиль Отправить личное сообщение для Dr_Bra Посетить домашнюю страницу Dr_Bra Найти все сообщения от Dr_Bra
  № 1  
Ответить с цитированием
Dr_Bra
 
Аватар для Dr_Bra

Регистрация: Nov 2008
Адрес: Moscow
Сообщений: 493
Отправить сообщение для Dr_Bra с помощью ICQ
По умолчанию Удаление из памяти содержимого контейнера

Всем привет!
Подскажите, пожалуйста, как грамотно удалять содержимое контейнера? В админку грузятся странички презентации все swf. Админка может "прокручивать" странички вперед и назад. Странички содержат внутри себя анимацию и видео.

Внимание проблема. Когда запускаешь презентацию и начинаешь перелистывать страницы, контейнер в админки (в него все странички погружаются), он не удалет свое содержимое и видео, которое содержится в страничках, фоново проигрываются. Хотя перед глазами уже последний слайд статика и все, а вот звук от видео мы слышим. Как будто все странички остались воспроизводится фоновом режими.


Вот метод, которым я листаю страницы и пытаюсь чистить контейнер:
Код AS3:
private function iWantPageAction():void
		{
			switch (iWantPage)// iWantPage - это переменная, которая увеличивается 
//или уменьшается на 1 по нажатию клавиши ЛЕВО или ПРАВО
			{
				case 1:
					cont_page.removeChild(pageLoader);//cont_pag – тот самый 
//контейнер в админке, куда я гружу страницы презентации и, который не вычищается 
//из памятьи, чтоли..
					pageLoader = null;
					pageLoader = new Loader();
					pageLoader.load(new URLRequest('_parts/Page_01.swf') );
					cont_page.addChild(pageLoader);					
					break;
				case 2:
					cont_page.removeChild(pageLoader);
					pageLoader = null;
					pageLoader = new Loader();
					pageLoader.load(new URLRequest('_parts/Page_02.swf') );
					cont_page.addChild(pageLoader);					
					break;
				case 3:
					...				
			}				
		}

Старый 10.05.2012, 12:15
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 2  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Код AS3:
pageLoader.unloadAndStop();
pageLoader = null;
__________________
Марк Tween

Старый 10.05.2012, 12:18
Dr_Bra вне форума Посмотреть профиль Отправить личное сообщение для Dr_Bra Посетить домашнюю страницу Dr_Bra Найти все сообщения от Dr_Bra
  № 3  
Ответить с цитированием
Dr_Bra
 
Аватар для Dr_Bra

Регистрация: Nov 2008
Адрес: Moscow
Сообщений: 493
Отправить сообщение для Dr_Bra с помощью ICQ
Вы гений!

Старый 10.05.2012, 13:02
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 4  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
плюсуйте тогда
__________________
Марк Tween

Старый 19.06.2012, 14:27
Dr_Bra вне форума Посмотреть профиль Отправить личное сообщение для Dr_Bra Посетить домашнюю страницу Dr_Bra Найти все сообщения от Dr_Bra
  № 5  
Ответить с цитированием
Dr_Bra
 
Аватар для Dr_Bra

Регистрация: Nov 2008
Адрес: Moscow
Сообщений: 493
Отправить сообщение для Dr_Bra с помощью ICQ
А если экземпляр класса сам себя удаляет?
На строку
Код AS3:
this = null;
ругается, нужно писать
Код AS3:
this == null;
??

Старый 19.06.2012, 16:02
Tails вне форума Посмотреть профиль Отправить личное сообщение для Tails Найти все сообщения от Tails
  № 6  
Ответить с цитированием
Tails
 
Аватар для Tails

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
Dr_Bra
Вы при каждом нажатий лево/право повторно грузите один и тот-же swf? А почему так? Жёсткие ограничения по объёмам оперативной памяти ?

Проблема мне кажется в том, что в cont_page остается ссылка на старый загруженный объект pageLoader, pageLoader - ссылка на объект в памяти, вы очищаете ссылку pageLoader, но на это объект ещё ссылаеться список детей cont_page, потому объект остается в памяти.

= (оператор присваивания)
== (оператор сравнения)
Сильно разные вещи.

Самый годный путь решения:
Переписать и грузить каждый swf - 1 раз в некий массив. Затем при переходах - добавлять в список отображения cont_page нужный элемент из этого массива.
__________________
Дети не должны знать о своих родителях


Последний раз редактировалось Tails; 19.06.2012 в 16:16.
Создать новую тему Ответ Часовой пояс GMT +4, время: 02:05.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
видео , грузится , контейнер , Слайд , фоновый режим
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 02:05.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.