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

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

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

Регистрация: Nov 2010
Адрес: 48° 55'N 24° 42'E GMT +2:00
Сообщений: 399
Записей в блоге: 1
У вас тоже ручное составление пар... Как не крути, но все же как-то нужно объяснить, что один объект дружит с другим. К тому же:
Код AS3:
protected function eNum(num:Number):void{
var arrNumG:Array = [btnG0,btnG1,btnG2,btnG3]; // Зачем каждый раз, вызывая метод eNum(), пересоздавать
var arrNumB:Array = [btnB0,btnB1,btnB2,btnB3]; // массивы. А если их будет овер 1000? Выносите из за рамки данного метода.
var pushObjG:Object = new Object(); // Зачем "new Object();" если Вы тут же его переопределяете
var pushObjB:Object = new Object(); // на "arrNumG[num]". Лишнее телодвижение
pushObjG = arrNumG[num];		
pushObjB = arrNumB[num];
// ну и дальше что хотим то и делаем с ними с первым и вторым объектом, например:
pushObjG.visible = false;
pushObjB.visible = false;
}

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

Регистрация: Jan 2011
Сообщений: 247
Цитата:
Сообщение от Akopalipsis Посмотреть сообщение
я его пробовал и оказалось, что он хороший при условии, что все обьекты одинаковые, как Вы и предлагали.
Если все обьекты разные, то Вы не сможете создать их даже циклом. Единственное что можно сделать, это создать два массива, один для одного типа обьектов, а другой для другого. Потом циклом их загнать в третий массив чередуя. Потом при клике искать таргет в третьем массиве и узнавать его номер. Если номер четный, то выбираем его и его брата, который равняется на порядок меньше.
Очень интересно посмотреть реализацию "впихиваний" 1000+ объектов в словарь как ключ и присваиванием значений

Добавлено через 3 минуты
Цитата:
Сообщение от elder_Nosferatu Посмотреть сообщение
У вас тоже ручное составление пар... Как не крути, но все же как-то нужно объяснить, что один объект дружит с другим.
Да в этом вся и проблема темы, что все только руками

Идея есть только в том что у них будет что-то общее или же как я писал раньше :
Код AS3:
(event.currentTarget.length - 1).visible = false ; // вообщим идея в том чтоб убрать последнюю букву имени объекта, тем самым мы уже работаем с "братом" .

Старый 16.10.2013, 00:25
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 13  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
Вот.
Код AS3:
var dictionary:Dictionary = new Dictionary();
var a:Object = { };
var b:Object = { };
for (var i:int = 0; i < 100000; i++) 
{
	a['name' + i] = new A();
	b['name' + i] = new B();
	dictionary[a['name' + i]] = b['name' + i];
	dictionary[b['name' + i]] = a['name' + i];
	trace(a['name' + i], b['name' + i]);
}

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

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Цитата:
Сообщение от GrafMine Посмотреть сообщение
Вот интересно что если на все рабочее пространство "раскидать кружочки" рандомом( пусть они все одинакового цвета и размера (допустим в 3 px) ), и создать их порядка нескольких тысяч массивом, и при нажатии на любой кружочек, с этих тысячи кружков мелькнул(подсветился) "брат кружка, клацнутого кружка"
Создайте класс кружочка у которого будет свойство для хранения своего "брата" и всё.

Класс кружка
Код AS3:
package  
{
	import flash.display.Sprite;
 
	public class Circle extends Sprite 
	{
		public var myBro:Circle;
 
		public function Circle() 
		{
			graphics.beginFill(Math.random() * 0xFFFFFF);
			graphics.drawCircle(0, 0, 20);
			graphics.endFill();
		}
	}
}
Главный класс
Код AS3:
package 
{
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.MouseEvent;
	import flash.geom.ColorTransform;
 
	public class Main extends Sprite 
	{
 
		public function Main():void 
		{
			for (var i:int = 0; i < 500; i++) //создаём 1000 кружков, только они будут перекрывать друг друга
			{
				var circle_1:Circle = new Circle();
				var circle_2:Circle = new Circle();
 
				circle_1.x = Math.random() * 800;
				circle_1.y = Math.random() * 600;
 
				circle_2.x = Math.random() * 800;
				circle_2.y = Math.random() * 600;
 
				circle_1.myBro = circle_2; // указываем кто кому брат
				circle_2.myBro = circle_1;
 
				addChild(circle_1);
				addChild(circle_2);
 
				circle_1.addEventListener(MouseEvent.CLICK, circle_click);
				circle_2.addEventListener(MouseEvent.CLICK, circle_click);
			}
		}
 
		private function circle_click(e:MouseEvent):void 
		{
			//при клике по кружку, его брат меняет цвет
			var colorTr:ColorTransform = new ColorTransform();
			colorTr.color = Math.random() * 0xFFFFFF;
			(e.currentTarget as Circle).myBro.transform.colorTransform = colorTr;
		}
 
	}
 
}

Старый 16.10.2013, 00:34
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 15  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
samana пусть скажут что я подхалимничую или ещё что то, но после того, как я пол дня думал, как это сделать, я не могу не сказать, что это - ГЕНИАЛЬНО!)

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

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Akopalipsis, спасибо конечно. Но вы ведь с нами уже давненько и все мы знаем, что если одному объекту нужна связь с другим - мы просто передаём ему ссылку на этот объект)

Старый 16.10.2013, 00:40
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 17  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
samana ну естественно мы все об этом знаем!) Но вот из всех желающих помочь ТС, только Вы об этом сказать, а мы все специально всё усложняли!)

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

Регистрация: Nov 2010
Адрес: 48° 55'N 24° 42'E GMT +2:00
Сообщений: 399
Записей в блоге: 1
А как быть, если нужные объекты не могут быть унаследованы от одного класса. К примеру у меня навязчивая идея использовать Битмапы и Шейпы, если для задачи не нужен именно контейнер. Возьмем один объект статический (скажем внешняя пнг-шка), а второй - анимированый мувик. Спрайту тоже задачку можна придумать. Тогда не обойтись без внешнего, по отношению к объектам, хранилища, которое будет хранить связи между объектами.
Но и это не главное - ТС мучается из за того, что ему прийдется самостоятельно вбивать связи между объектами. И любой из предложеных нами методов не избавит его от этой каторги. Даже если инфу о связях подгружать извне какой-нибудь хмл-кой, ее все равно нужно самому подготовить.

Старый 16.10.2013, 01:56
djyamato вне форума Посмотреть профиль Отправить личное сообщение для djyamato Посетить домашнюю страницу djyamato Найти все сообщения от djyamato
  № 19  
Ответить с цитированием
djyamato
 
Аватар для djyamato

Регистрация: Feb 2006
Сообщений: 884
Записей в блоге: 2
Отправить сообщение для djyamato с помощью ICQ Отправить сообщение для djyamato с помощью Skype™
можно воспользоваться интерфейсами, и да, я бы передавал не ссылку на брата, а id брата, например

Старый 16.10.2013, 02:02
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 20  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
Цитата:
я бы передавал не ссылку на брата, а id брата, например
А можно поинтересоваться почему так? Если передавать ссылку, то обьект можно найти сразу, а id это сортировка массива. Или это плохо из - за нарушения низкой связанности?

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

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

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


 


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


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