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

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

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

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
Цитата:
как сделать у независимых между собой объектов такую вешь как:
гдето чтото нажали
и не кнопка говорит каждому из милиона обектов "стань красным!"
а все объекты тихо ждут когда кнопочку кликнут и автоматом "поменяют цвет"
Самый простой способ - static поля / методы.

Старый 21.03.2011, 16:00
dvrbear вне форума Посмотреть профиль Отправить личное сообщение для dvrbear Найти все сообщения от dvrbear
  № 22  
Ответить с цитированием
dvrbear
[+1.3 06.03.12]
 
Аватар для dvrbear

Регистрация: Oct 2003
Адрес: Moldova, Kishinev
Сообщений: 133
Отправить сообщение для dvrbear с помощью ICQ Отправить сообщение для dvrbear с помощью Skype™
про оформление прочитал - спасибо
буду стараться придерживаться

по моей задачи - если уж я такой непутевый, ткните пожалуйста в похожйи пример
или дайте исходник для изучения

видимо у меня мозги не могут включится в нужную передачу

еще раз спасибо!
__________________
http://apa-noua.com/portfolio

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
События не приходят "хоть откуда", dvrbear. Они передаются в параметр обработчику совершенно конкретным EventDispatcher'ом, которому Вы же перед этим и дали ссылку на этот конкретный обработчик. EventDispatcher просто вызывает метод (обработчик) и передает ему заполненный объект класса Event в качестве параметра.
__________________
Reality.getBounds(this);

Старый 21.03.2011, 16:44
dvrbear вне форума Посмотреть профиль Отправить личное сообщение для dvrbear Найти все сообщения от dvrbear
  № 24  
Ответить с цитированием
dvrbear
[+1.3 06.03.12]
 
Аватар для dvrbear

Регистрация: Oct 2003
Адрес: Moldova, Kishinev
Сообщений: 133
Отправить сообщение для dvrbear с помощью ICQ Отправить сообщение для dvrbear с помощью Skype™
спасибо за помощь
но я самоучка и в терменалогии мало чего понимаю
это как дальтоника в теории цветам учить

можете дать любой более сложный пример с событиями и диспатчерами?
так как по примеру простых тоже мало чего понятно, вроде как все просто и все работает, а стоит сделать шаг влево/право и тупик
__________________
http://apa-noua.com/portfolio

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

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
Цитата:
можете дать любой более сложный пример с событиями и диспатчерами?
попробуйте вот тут поискать, например - http://help.adobe.com/ru_RU/ActionSc...0204-7e4e.html

Старый 21.03.2011, 19:51
dvrbear вне форума Посмотреть профиль Отправить личное сообщение для dvrbear Найти все сообщения от dvrbear
  № 26  
Ответить с цитированием
dvrbear
[+1.3 06.03.12]
 
Аватар для dvrbear

Регистрация: Oct 2003
Адрес: Moldova, Kishinev
Сообщений: 133
Отправить сообщение для dvrbear с помощью ICQ Отправить сообщение для dvrbear с помощью Skype™
реально ребята - по книжкам и тех описанию сложно понять как все работает %)
все прояснилось после того как случайно прочел одно предложение в примере создания одной игры
http://xitri.com/2010/12/13/box2d-ch...kyiv-2010.html

может новичкам "неправильномыслящим" вроде меня смогу объяснить.
вообщем так dispatchEvent создавший событие
передает это событие вверх по цепочке до STAGE

тем самым addEventListener может его отловить всеми уровнями выше (включая тотже уровень)

НО только в цепочке от диспатча до стэйдж!!! если у вас имеется деревация то другие веточки не поймают событие
__________________
http://apa-noua.com/portfolio

Старый 21.03.2011, 22:52
bookin вне форума Посмотреть профиль Отправить личное сообщение для bookin Найти все сообщения от bookin
  № 27  
Ответить с цитированием
bookin

Регистрация: Mar 2011
Сообщений: 53
Stargazer, да я заметил что он имена разрешает но выполняет действия только с последним объектом в списке одинаковых имен, логика понятна, но не понятно почему сразу об этом не предостеречь)
Пока сделал так
Код AS3:
var arrayCounrty:Array = new Array(RU, UA); 
var len:uint = arrayCounrty.length; 
for (var i:uint = 0; i < len; i++) 
{ 
arrayCounrty[i].addEventListener(MouseEvent.MOUSE_OVER,	fnOver);
}
но еще попробую способ который предложил nOobCrafter наверное будет правильнее

Старый 22.03.2011, 01:26
Александр Мостовой вне форума Посмотреть профиль Отправить личное сообщение для Александр Мостовой Посетить домашнюю страницу Александр Мостовой Найти все сообщения от Александр Мостовой
  № 28  
Ответить с цитированием
Александр Мостовой
 
Аватар для Александр Мостовой

Регистрация: Sep 2001
Адрес: Харьков
Сообщений: 305
Отправить сообщение для Александр Мостовой с помощью ICQ Отправить сообщение для Александр Мостовой с помощью Skype™
класс Flower
Код AS3:
	public class Flower extends Sprite
	{
		public function Flower()
		{
			...
			sun.addEventListener("onRise", sun_onRiseHadler)	
		}
 
		private function sun_onRiseHadler(event:Event):void
		{
			wakeUp();
		}
	}
слушает событие "onRise" обьекта класса Sun

Код AS3:
	public class Sun extends Sprite
	{
		public function Sun()
		{
			...
			dispatchEvent("onRise");
		}
	}
Добавлено через 9 минут
Цитата:
передает это событие вверх по цепочке до STAGE
Все верно, но здесь речь о баблинге - следование событий по ДисплйЛисту, это немного другое, то по какому алгоритму флешплеер внутри себя вызывает инструмент dispatchEvent("click") при клике мыши на вложенных обьектах.
При клике мыши dispatchEvent - писать не нужно, его инициирует флешплеер, пистать его нужно если вы хотите сами инициировать событие
Код AS3:
	public class Sun extends Sprite
	{
		public function Sun()
 
			...
 
			if (y > horizont)
			{
				dispatchEvent("onRise");
			}
 
	}
__________________
...


Последний раз редактировалось Александр Мостовой; 22.03.2011 в 01:38.
Старый 22.03.2011, 10:30
bookin вне форума Посмотреть профиль Отправить личное сообщение для bookin Найти все сообщения от bookin
  № 29  
Ответить с цитированием
bookin

Регистрация: Mar 2011
Сообщений: 53
Цитата:
Сообщение от nOobCrafter Посмотреть сообщение
Код AS3:
				for(var j:int = 0; j < pathGrid.numRows; j++)
				{
					var box:IsoBox = new IsoBox();
					box.setSize(cellSize, cellSize, 0);
					box.addEventListener(MouseEvent.CLICK, onGridItemClick);
...
имена могут быть любые, надо просто иметь ссылку не обьект и к ней уже подписываться.

что то я так ничего и не понял((

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Имя - это просто переменная типа String, одно из свойств объекта. Естественно ничто не мешает разным объектам иметь одинаковое значение одной из переменных. У вас же могут быть два клипа с одинаковым свойством х?
У объекта имя может быть вообще не задано. Главное, чтобы на объект была ссылка - указатель , какой именно объект (область памяти) имеется в виду. Ссылку нельзя "потрогать", ее можно (точнее, нужно) сохранить при создании объекта. Пример:
Код AS3:
new TextField(); // Текстовое поле создано. Но обратиться к нему Вы никак не сможете.
var txt:TextField = new TextField() // Сохранили ССЫЛКУ на новое поле в переменной txt.
Обратите внимание, "txt" - это не Имя объекта, это имя переменной, хранящей ссылку на объект. Можно записать в нее ссылку на другой объект, и ссылка на первый будет потеряна, а значит Вы не сможете к нему обратиться.

Добавлено через 11 минут
Ссылку на область памяти, занимаемую вновь созданным объектом, возвращает оператор new. Когда вы создаете объекты в редакторе "руками", а не программно с помощью new, никакой ссылки у вас нет. Поэтому существует механизм назначения Имени экземпляру на рабочем столе и специальный метод getChildByName(name:String) - чтобы получить ссылку на созданный вручную экземпляр по его свойству name и сохранить ее в переменной для использования в коде. Поэтому, если вы задали одинаковые имена экземплярам на сцене, это никак не противоречит смыслу "имени", но при попытке "найти" эти экземпляры - и получается "черти что", возвращается первый попавшийся с подходящим именем.
__________________
Reality.getBounds(this);

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

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

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


 


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


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