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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 12.12.2014, 15:13
neonoviiwolf вне форума Посмотреть профиль Отправить личное сообщение для neonoviiwolf Найти все сообщения от neonoviiwolf
  № 1  
Ответить с цитированием
neonoviiwolf

Регистрация: Jun 2014
Сообщений: 558
По умолчанию Элементы отображения вектора

Добрый день, меня вопрос интересует, есть ли возможность узнать, какие элементы из вектора добавлены на сцену, какие нет?

костыли я могу легко сделать, типо булевскую переменную введу дополнительно в класс или второй вектор-массив, где буду хранить индексы выведенных на экран объектов

Старый 12.12.2014, 15:32
Gerbert вне форума Посмотреть профиль Найти все сообщения от Gerbert
  № 2  
Ответить с цитированием
Gerbert
Banned

Регистрация: Aug 2014
Сообщений: 461
Если предположить, что под "вектор" Вы подразумеваете типизированный массив, а не векторную графику,
то способов будет много, но все они либо завися от архитектуры, либо её навязывают.
Самое простое и эффективное, сделать класс-добавлятор-удалятор и в нем проверять на принадлежность
к интерфейсу. Если не делать такого класса и продолжить дальше делать предположения о том, что в массиве
у Вас находятся объекты одного типа, то можно при добавлении их в дисплей лист не удалять из массива,
а уменьшать значение свойства текущего элемента. Взяли один элемент по текущему значению, уменьшили
его, удалили его из дисплей листа, прибавили на одно. И так получится, что те, которые находятся в диапазоне
от этого самого свойства до длины массива и есть объекты, которые в списке отображения.

Старый 12.12.2014, 15:45
neonoviiwolf вне форума Посмотреть профиль Отправить личное сообщение для neonoviiwolf Найти все сообщения от neonoviiwolf
  № 3  
Ответить с цитированием
neonoviiwolf

Регистрация: Jun 2014
Сообщений: 558
Gerbert спасибо, видно я не так написал, у меня вектор одинаковых элементов и они должны оставаться там, т.к. это пул, я пытаюсь написать код, который при срабатывании определённого события (в данном случаи выход за пределы сцены) удаляет элементы со сцены (вектор то мы не трогаем). Просто сейчас сыпется куча предупреждения, что невозможно "Cannot access a property or method of a null object reference." т.к. я не могу получить координаты объектов, которых нет на сцене. Так вот всё что нужно мне - это сделать проверку условия, находиться ли элемент на сцене. Костыль сделать займёт 5 мин, но есть какой либо метод, который именно для этого и предназначен

Старый 12.12.2014, 16:05
Gerbert вне форума Посмотреть профиль Найти все сообщения от Gerbert
  № 4  
Ответить с цитированием
Gerbert
Banned

Регистрация: Aug 2014
Сообщений: 461
Проверить, это if( object.stage != null )...
Но скорее всего, Вы что-то неправильно делаете
раз появилась потребность проверять на наличие
в дисплей листе...

Старый 31.12.2014, 17:22
neonoviiwolf вне форума Посмотреть профиль Отправить личное сообщение для neonoviiwolf Найти все сообщения от neonoviiwolf
  № 5  
Ответить с цитированием
neonoviiwolf

Регистрация: Jun 2014
Сообщений: 558
Цитата:
Сообщение от Gerbert Посмотреть сообщение
Проверить, это if( object.stage != null )...
Но скорее всего, Вы что-то неправильно делаете
раз появилась потребность проверять на наличие
в дисплей листе...
не работает
написал
Код AS3:
			var i =vector_bullet.length;
			while (--i > -1) {
 
				if (vector_bullet[i].stage != null) {
					*************
                    }
            }
функция соответственно в энтер_фрейме, цикл работает, но условие всегда false выходит

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

Регистрация: Aug 2014
Адрес: Где-то на поверхности планеты, какой хз
Сообщений: 113
извиняюсь за оффтоп но:
Цитата:
while (--i > -1)
это приемлемая форма записи условия?

Старый 01.01.2015, 00:19
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 7  
Ответить с цитированием
in4core
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Цитата:
это приемлемая форма записи условия?
Да. Помоему даже адоб в своих методах оптимизации так советовал писать
__________________
Марк Tween

Старый 03.01.2015, 11:39
neonoviiwolf вне форума Посмотреть профиль Отправить личное сообщение для neonoviiwolf Найти все сообщения от neonoviiwolf
  № 8  
Ответить с цитированием
neonoviiwolf

Регистрация: Jun 2014
Сообщений: 558
Народ, ну помогите, плиз

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

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
Код AS3:
//var vector:Vector.<Sprite>;
 
var i:uint = vector.length;
while(i-- > 0){
    if(vector[i] && vector[i].stage){
        trace(vector[i] + " добавлен на сцену");
    }else{
        trace(vector[i] + " не добавлен на сцену");
    }
}
__________________
Дети не должны знать о своих родителях

Старый 05.01.2015, 14:24
neonoviiwolf вне форума Посмотреть профиль Отправить личное сообщение для neonoviiwolf Найти все сообщения от neonoviiwolf
  № 10  
Ответить с цитированием
neonoviiwolf

Регистрация: Jun 2014
Сообщений: 558
Tails всегда выводит, что объект не добавлен на сцену, хотя они появляются на сцене. Вектор содержит пульки, они добавляются на сцену во время игры, в чём может быть дело?

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

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

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


 


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


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