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

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

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

Регистрация: Jul 2012
Сообщений: 112
По умолчанию удаление нужного элемента с экрана и массива

Как удалить с экрана элементы, которые удаляются из массива?
Например массив
Код AS3:
var objects:Array = new Array(); 
objects[0] = ["0", "30"]; 
objects[1] = ["0", "130"]; 
objects[2] = ["100", "30"]; 
objects[3] = ["100", "130"]; 
objects[4] = ["200", "30"]; 
objects[5] = ["200", "130"];
Код AS3:
objects[i][i] - координата x
objects[i][j] - координата y
Удалил, например из массива элементы objects[2], objects[3] , и эти же элементы, которые удалил из массива хочу удалить с экрана. Каким образом это сделать?

Старый 12.04.2013, 11:27
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 2  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Никаким. Строки не могут быть добавлены на экран. Так же как и числа.

Старый 12.04.2013, 11:30
olejan1991 вне форума Посмотреть профиль Отправить личное сообщение для olejan1991 Найти все сообщения от olejan1991
  № 3  
Ответить с цитированием
olejan1991

Регистрация: Jul 2012
Сообщений: 112
Добавляются не строки массива, элементы массива это координаты квадратов, которые рисуются на экране

Добавлено через 2 минуты
drawRect(objects[i][i], objects[i][j], width:Number, height:Number)

Старый 12.04.2013, 11:51
bav вне форума Посмотреть профиль Отправить личное сообщение для bav Найти все сообщения от bav
  № 4  
Ответить с цитированием
bav
 
Аватар для bav

Регистрация: Oct 2010
Сообщений: 1,049
Отправить сообщение для bav с помощью ICQ
Например, можно в этом же массиве objects хранить и ссылку на рисуемый прямоугольник. С учетом, что каждый прямоугольник отдельный спрайт. Если же вы все рисуете в одном спрайте, то сделайте функции addObject( x:int, y:int ) и removeObject( indexInArray:uint ), в которых после добавления/удаления элемента массива будет вызываться функция update(), которая, в свою очередь, будет заново отрисовывать весь массив.

Старый 12.04.2013, 11:57
olejan1991 вне форума Посмотреть профиль Отправить личное сообщение для olejan1991 Найти все сообщения от olejan1991
  № 5  
Ответить с цитированием
olejan1991

Регистрация: Jul 2012
Сообщений: 112
Вооот, ссылка, как ее присвоить рисуемому объекту?
при удалении обращаться к удаляемому объекту removeChild(ссылка); ?

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

Регистрация: Oct 2010
Сообщений: 1,049
Отправить сообщение для bav с помощью ICQ
Код AS3:
private function addObject( x:int, y:int, w:Number, h:Number ):void
{
	// Создаем новый спрайт
	var s:Sprite = new Sprite();
	s.x = x;
	s.y = y;
	var g:Graphics = s.graphics;
	g.lineStyle(1, 0x000000);
	g.beginFill(0xAABBCC);
	g.drawRect(0, 0, w, h);
	g.endFill();
	// Создаем элемент массива
	var element:Array = [x, y, s];
	objects.push( element );
	addChild( s );
}
 
private function removeObject( index:uint ):void
{
	if (index >= objects.length)
		return;
 
	var element:Array = objects[index] as Array;
	var s:Sprite = element[2] as Sprite;
	// Удаляем спрайт из списка отображения
	removeChild( s );
	// Удаляем элемент массива, чтобы нигде не осталось
	// ссылки на спрайт.
	objects.splice( index, 1 );
}

Старый 12.04.2013, 12:21
olejan1991 вне форума Посмотреть профиль Отправить личное сообщение для olejan1991 Найти все сообщения от olejan1991
  № 7  
Ответить с цитированием
olejan1991

Регистрация: Jul 2012
Сообщений: 112
Спасибо

Добавлено через 55 часов 29 минут
А нельзя удалить по имени?
Как-то вот так, например:
Код AS3:
removeChild(cell.name = имя)

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

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

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


 


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


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