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

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

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

модератор форума
Регистрация: Jul 2004
Адрес: Питер
Сообщений: 1,651
Записей в блоге: 1
Отправить сообщение для Gaen с помощью ICQ Отправить сообщение для Gaen с помощью Skype™
1. Пишем что класс реализует интерфейс
2. Открываем интерфейс или мануалы по нему, смотрим список свойств и методов
3. Добавляем в наш класс эти свойства и методы

В вашем случае например нужно будет создать приватный экземпляр EventDispatcher'a и все ниточки интерфейса привязать к нему:

Код AS3:
public function dispatchEvent(e:Event):void{
  this.dispatcher.dispatchEvent(e);
}
__________________
тонкий тролль, осеянный благодатью

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

Регистрация: Dec 2008
Сообщений: 88
вроде разобрался всем спасибо преогромнейшее за вашу отзывчивость


Последний раз редактировалось wer32; 19.01.2009 в 22:05.
Старый 11.03.2009, 01:37
wer32 вне форума Посмотреть профиль Отправить личное сообщение для wer32 Найти все сообщения от wer32
  № 13  
Ответить с цитированием
wer32
 
Аватар для wer32

Регистрация: Dec 2008
Сообщений: 88
Пытаюсь диспатчерить событие из класса наследуемого от Sprite. Поидее он наследуется через цепочку от EventDispatcher но всеравно диспатчер события тупо не срабатывает. Добавить интерфейс IEventDispatcher не решает проблеммы. Господа подскажите как решить данную проблемму и где мой подход ошибочен.

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

модератор форума
Регистрация: Jul 2004
Адрес: Питер
Сообщений: 1,651
Записей в блоге: 1
Отправить сообщение для Gaen с помощью ICQ Отправить сообщение для Gaen с помощью Skype™
Вы уверены что он не срабатывает? Может просто не так ловите? Приведите пример кода.

"проблема" - с одной "м"
__________________
тонкий тролль, осеянный благодатью

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

Регистрация: Dec 2008
Сообщений: 88
Код AS3:
// документ класс
package {
	import flash.display.*;
	import flash.events.*;
 
	public class Main extends Sprite {
		private var game:Game;
 
		public function Main() {
			game = new Game();
			addChild(game);
			game.addEventListener(Game.BOOM,boomListener);
		}
 
		private function boomListener(e:Event):void{
			trace("boom");
		}
	}
}
Код AS3:
// мой пользовательский класс который диспатчит событие
package {
	import flash.display.*;
	import flash.events.*;
 
	public class Game extends Sprite {
		public static const BOOM:String = "boom";
		public var dispatcher:EventDispatcher;
 
		public function Game() {
			dispatcher = new EventDispatcher(this);
			addEventListener(Event.ENTER_FRAME,enterFrameListener);
		}
 
		private function enterFrameListener(e:Event):void{
			trace("enterFrame");
			dispatcher.dispatchEvent(new Event(Game.BOOM));
		}
	}
}
вот код.


Последний раз редактировалось wer32; 11.03.2009 в 03:32.
Старый 11.03.2009, 09:29
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 16  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,779
Ещё бы, вы же подписываетесь у спрайта, а рассылаете событие диспетчером.

Старый 11.03.2009, 10:12
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 17  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Код AS3:
public function Main() {
	this._game = new Game();
	this.addChild(this._game);
	this._game.dispatcher.addEventListener(Game.BOOM, this.boomListener);
}
__________________
Воспитан в TimeZero. Работаю в Mail.ru.


Последний раз редактировалось dimarik; 11.03.2009 в 10:15.
Старый 11.03.2009, 10:28
fljot вне форума Посмотреть профиль Отправить личное сообщение для fljot Найти все сообщения от fljot
  № 18  
Ответить с цитированием
fljot

блогер
Регистрация: Jul 2007
Сообщений: 940
Записей в блоге: 3
ну только dispatcher внутри Game уже не надо. wer32, вы же посмотрели и увидели, что спрайт наследуется от EventDispatcher'а и может сам рассылаться события

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

Регистрация: Dec 2008
Сообщений: 88
упс все понял все заработало.

Спасибо огромное тупил реально долго потому и сюда обратился к вам более опытным

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

Регистрация: Jun 2007
Сообщений: 374
по-хорошему перепишите методы addEventListener и removeEventListener своего класса Game

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

Теги
class , events
Опции темы
Опции просмотра

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

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


 


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


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