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

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

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

Регистрация: Feb 2012
Сообщений: 36
По умолчанию как повесить событие Event.ENTER_FRAME не на отображаемый объект?

Господа, можно ли(и если до, то как) повесить слушатель события Event.ENTER_FRAME на объект, класс которого не был унаследован от DisplayObject и им подобным?

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

блогер
Регистрация: Feb 2008
Сообщений: 1,453
Записей в блоге: 4
Это должен быть наследник EventDispatcher.
__________________
Ну все, теперь Забава м-о-я.
Гы-гы, а корабль мой!

Старый 20.02.2012, 00:11
Gaen вне форума Посмотреть профиль Отправить личное сообщение для Gaen Найти все сообщения от Gaen
  № 3  
Ответить с цитированием
Gaen
strange mood
 
Аватар для Gaen

модератор форума
Регистрация: Jul 2004
Адрес: Питер
Сообщений: 1,653
Записей в блоге: 1
Отправить сообщение для Gaen с помощью ICQ Отправить сообщение для Gaen с помощью Skype™
Повесить можно точно так же, но коли это не DisplayObject, ваш объект не будет посылать Event.ENTER_FRAME (если вы его не заставите, конечно).

Если вам требуется постоянно выполнять какие-то действия, воспользуйтесь классом Timer.
__________________
тонкий тролль, осеянный благодатью

Старый 20.02.2012, 00:22
Den_root вне форума Посмотреть профиль Отправить личное сообщение для Den_root Найти все сообщения от Den_root
  № 4  
Ответить с цитированием
Den_root

Регистрация: Feb 2012
Сообщений: 36
Есть куча "не DisplayObject" объектов, которые должны получать событие Event.ENTER_FRAME. Что то вроде этого:
Код AS3:
public class Intelegence extends EventDispatcher{
 
		public function Intelegence() {
 
                          addEventListener(Event.ENTER_FRAME, update);
                      }
 
		public function update(e:Event):void {
 
			//if (Input.KEY_W) entity.startUngine();
			 trace("Test");
		}
	}
Но данный код не работает

Старый 20.02.2012, 00:28
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 5  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Так это другое дело! Берёте экземпляр этого вашего Intelegence (IntelegenceObj), зажимаете вместе с ним в углу любой не удаляемый на протяжении жизни display object (displayObj, root в качестве него подойдёт) и делаете ему так:
Код AS3:
displayObj.addEventListener(Event.ENTER_FRAME, IntelegenceObj.update);
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

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

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
И не будет. Лучше у всей этой кучи вызывайте апдейт из внешнего источника stage, например.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

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

блогер
Регистрация: Feb 2008
Сообщений: 1,453
Записей в блоге: 4
У EventDispatcher-а нет события Event.ENTER_FRAME. Я думал речь идет о dispatch-е. Тогда можно попробовать сочетать с таймером, как советовал Gaen.
А какой смысл в таких манипуляциях?
__________________
Ну все, теперь Забава м-о-я.
Гы-гы, а корабль мой!

Старый 20.02.2012, 00:32
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 8  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Птщь
__________________
Поймай яблоко 2!

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

Регистрация: Feb 2012
Сообщений: 36
Цитата:
Сообщение от TanaTiX Посмотреть сообщение
А какой смысл в таких манипуляциях?
Замысел был такой: К объекту класса Intelegence приписан отображаемый объект, которым Intelegence,собственно, и управляет. Так как с "миром" будет взаимодействовать отображаемый объетк, а не эфемерный Intelegence, то и наследовать Intelegence от DisplayObject лишний раз не хотелось.
Код AS3:
public class ArtificialIntelligence extends EventDispatcher{
 
		public var entity:Entity;
 
		public function Intelegence() {
			entity = new Entity;
			addEventListener(Event.ENTER_FRAME, update);
		}
 
		public function update(e:Event):void {
 
			entity.doSomething();
		}
	}


Последний раз редактировалось Den_root; 20.02.2012 в 01:09.
Старый 20.02.2012, 01:17
TanaTiX вне форума Посмотреть профиль Отправить личное сообщение для TanaTiX Найти все сообщения от TanaTiX
  № 10  
Ответить с цитированием
TanaTiX
 
Аватар для TanaTiX

блогер
Регистрация: Feb 2008
Сообщений: 1,453
Записей в блоге: 4
Не вижу смысла в такой прослойке. В чем принципиальная необходимость не наследоваться от DisplayObject-а, если можно наследоваться от DisplayObject-а и переписать необходимый функционал?
Или же если необходимо спрятать функционал (частично или полностью), оставив лишь набор кастомных методов для взаимодействия с объектом, то почему не
Код AS3:
entity.addEventListener(Event.ENTER_FRAME, update);
?
Кстати, вот так правильней:
Код AS3:
entity = new Entity();
__________________
Ну все, теперь Забава м-о-я.
Гы-гы, а корабль мой!

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

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

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


 


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


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