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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 29.05.2014, 10:47
MikroAcse вне форума Посмотреть профиль Отправить личное сообщение для MikroAcse Найти все сообщения от MikroAcse
  № 21  
Ответить с цитированием
MikroAcse
 
Аватар для MikroAcse

Регистрация: Feb 2012
Сообщений: 1,540
gyfak показал неправильный пример.
Объекты из пула при использовании должны удаляться.
И лучше пусть пул заполняется не при старте игры, а в процессе.

Создать пул:
Код AS3:
var pool:Vector<Some> = new Vector<Some>();
Вы удалили ваш объект со сцены, значит добавляем в пул:
Код AS3:
removeChild(obj);
pool.push(obj);
Вы хотите заново использовать объект:
Код AS3:
if(pool.length > 0) {
    obj = pool.shift();
    obj.initialize(10, 20, "lala");
} else {
    obj = new Some(10, 20, "lala");
}
addChild(obj);

Старый 29.05.2014, 12:00
gyfak вне форума Посмотреть профиль Отправить личное сообщение для gyfak Найти все сообщения от gyfak
  № 22  
Ответить с цитированием
gyfak

Регистрация: Aug 2013
Адрес: Москва
Сообщений: 37
MikroAcse, пытался упростить, человек ведь не может понять.

Старый 29.05.2014, 13:12
KBAC вне форума Посмотреть профиль Отправить личное сообщение для KBAC Найти все сообщения от KBAC
  № 23  
Ответить с цитированием
KBAC
 
Аватар для KBAC

Регистрация: Jan 2006
Адрес: Москва (Нижний Новгород)
Сообщений: 229
Записей в блоге: 1
Отправить сообщение для KBAC с помощью Skype™
Логика такая:
Создаёте пул - это такой посредник, который прячет в себе логику хранения и создания объекта.
Когда вам нужен новый объект - обращаетесь к пулу "Дай объект".
Пул в свою очередь смотрит, есть ли у него свободные объекты. Если есть - отдаёт один из свободных, иначе создаёт новый и отдаёт его.
Когда объект вам больше не нужен (врага убили, как пример), вы отчищаете объект, отписываетесь от всех слушателей и говорите пулу - "возьми объект назад". Пул сохраняет возвращённый объект в список свободных объектов.
Для отчистки объекта удобно заводить у него специальный метод - reset(), например. Но от слушателей всё равно придётся отписываться руками.

Похоже я пару страниц не прочитал. Ок.
__________________
Будь проще.

Старый 29.05.2014, 13:17
MikroAcse вне форума Посмотреть профиль Отправить личное сообщение для MikroAcse Найти все сообщения от MikroAcse
  № 24  
Ответить с цитированием
MikroAcse
 
Аватар для MikroAcse

Регистрация: Feb 2012
Сообщений: 1,540
Цитата:
MikroAcse, пытался упростить, человек ведь не может понять.
Просто я хотел сказать, что удалять из пула обязательно.

Старый 30.05.2014, 02:24
zCHESNOKz вне форума Посмотреть профиль Отправить личное сообщение для zCHESNOKz Посетить домашнюю страницу zCHESNOKz Найти все сообщения от zCHESNOKz
  № 25  
Ответить с цитированием
zCHESNOKz
 
Аватар для zCHESNOKz

Регистрация: May 2013
Адрес: (0, 0)
Сообщений: 176
Цитата:
Сообщение от KBAC Посмотреть сообщение
Логика такая:
Создаёте пул - это такой посредник, который прячет в себе логику хранения и создания объекта.
Когда вам нужен новый объект - обращаетесь к пулу "Дай объект".
Пул в свою очередь смотрит, есть ли у него свободные объекты. Если есть - отдаёт один из свободных, иначе создаёт новый и отдаёт его.
Когда объект вам больше не нужен (врага убили, как пример), вы отчищаете объект, отписываетесь от всех слушателей и говорите пулу - "возьми объект назад". Пул сохраняет возвращённый объект в список свободных объектов.
Для отчистки объекта удобно заводить у него специальный метод - reset(), например. Но от слушателей всё равно придётся отписываться руками.

Похоже я пару страниц не прочитал. Ок.
Спасибо, понимаю, что к чему

Создать новую тему Ответ Часовой пояс GMT +4, время: 20:22.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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