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

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

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

Регистрация: Jun 2014
Сообщений: 558
Цитата:
Сообщение от Azrael Посмотреть сообщение
А если я использовал код выложенный mihael_p, как мне узнать номер элемента в массиве?
а зачем его узнавать, когда у вас имеется уже сам элемент?

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

Регистрация: Sep 2015
Сообщений: 69
Цитата:
Сообщение от neonoviiwolf Посмотреть сообщение
а зачем его узнавать, когда у вас имеется уже сам элемент?
сделать removeChild(cells[i][j]); еще я планировал в другом массиве хранить объекты скрываемые ячейками и потом сравнивать два массива (массив с закрытыми клетками и массив с "не пустышками")... но сейчас понимаю что это неправильно и громоздко...

Старый 07.06.2016, 01:04
neonoviiwolf вне форума Посмотреть профиль Отправить личное сообщение для neonoviiwolf Найти все сообщения от neonoviiwolf
  № 13  
Ответить с цитированием
neonoviiwolf

Регистрация: Jun 2014
Сообщений: 558
Цитата:
Сообщение от Azrael Посмотреть сообщение
сделать removeChild(cells[i][j]); еще я планировал в другом массиве хранить объекты скрываемые ячейками и потом сравнивать два массива (массив с закрытыми клетками и массив с "не пустышками")... но сейчас понимаю что это неправильно и громоздко...
думаю не надо там ничего удалять, просто используй композицию (надеюсь правильно вспомнил название). Создаёшь класс, наследник спрайта к примеру, и уже в нём через событие, к примеру this.addEventListener(Event.ADDED_TO_STAGE, init) добавляешь свой квадрат, а потом делаешь массив этих классов и когда добавляешь этот класс на сцену, добавиться и квадрат. Теперь не обязательно удалять класс из массива, вы просто пишите код, который в случаи необходимости удалит/добавит квадрат в этом классе(да хоть спляшет мазурку). Тут вам и разгул будет по возможностям хранить все данные без всяких массивов и соответственно писать поведение всего и вся

Старый 07.06.2016, 01:08
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 14  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Цитата:
сделать removeChild(cells[i][j]);
в обработчике есть ссылка на элемент, который кликнули. Это свойство currentTarget объекта события (MouseEvent) который получил обработчик setCell. То есть e.currentTarget это точно такая же ссылка, как и cells[i][j] с правильными i и j.

Добавлено через 5 минут
Цитата:
как мне узнать номер элемента в массиве?
проще всего будет хранить номер колонки и номер строки в самом элементе как его свойства. То есть, завести в классе Cell свойства column и row, и заполнять их прямо при создании элементов в цикле, передавая i и j.
__________________
Reality.getBounds(this);

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

Регистрация: Sep 2015
Сообщений: 69
Цитата:
Сообщение от Wolsh Посмотреть сообщение
в обработчике есть ссылка на элемент, который кликнули. Это свойство currentTarget объекта события (MouseEvent) который получил обработчик setCell. То есть e.currentTarget это точно такая же ссылка, как и cells[i][j] с правильными i и j.
Пробовал, получил ошибку, щас не вспомню какую.

Цитата:
Сообщение от Wolsh Посмотреть сообщение
Добавлено через 5 минут
проще всего будет хранить номер колонки и номер строки в самом элементе как его свойства. То есть, завести в классе Cell свойства column и row, и заполнять их прямо при создании элементов в цикле, передавая i и j.
А вот это мне подойдет, спасибо.

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Цитата:
Пробовал, получил ошибку, щас не вспомню какую.
Ошибки это хорошо, они помогают сделать все правильно)) В вашем случае, скорее всего, требовалось сделать кастинг или приведение типа при передаче в removeChild(), чтобы был DisplayObject, потому что currentTarget имеет общий тип Object.
__________________
Reality.getBounds(this);

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

Регистрация: Sep 2015
Сообщений: 69
Цитата:
Сообщение от Wolsh Посмотреть сообщение
Ошибки это хорошо, они помогают сделать все правильно)) В вашем случае, скорее всего, требовалось сделать кастинг или приведение типа при передаче в removeChild(), чтобы был DisplayObject, потому что currentTarget имеет общий тип Object.
Точно! так и было

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

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

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


 


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


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