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

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Flash > Action script 2.0

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

Регистрация: Jan 2002
Адрес: Kharkov
Сообщений: 57
По умолчанию ASBroadcaster. Генрация классом своих событий.

Не могу понять некоторые вещи связанные с объектом ASBroadcaster. Во первых, почему когда делаешь
trace(ASBroadcaster) выводится undefined? Ну каким бы скрытым и не документированным этот объект не был, но он же должен себя хоть как - то проявлять.
И второй вопрос, у меня есть мувиклип и связаный с ним с помощью Linkage класс. Мне нужно, чтобы этот класс генерил события, как это сделать? Пробывал в конструкторе писать
ASBroadcaster.initialize(this); но это понятно не катит по скольку объекта ASBroadcaster он просто не видит, передавал в класс этот объект как параметр, но не понятно тогда, что должно вызывать broadcastMessage, если this.broadcastMessage, то опять же будет ругаться, чтот такого метода нету, короче бред какой-то. Кстати пробывал трейсить передоваемый объект ASBroadcaster - выдаётся undefined, ну блин - это хитрая особенность или этот бродкастер нужно как то хитро подключать.
Ах да, у меня Flash MX 2004, может в нём они вообще убрали этот бродкастер?

Старый 20.10.2004, 19:29
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 2  
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
trace(AsBroadcaster), ну и далее в том же духе..

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

Регистрация: Jan 2002
Адрес: Kharkov
Сообщений: 57
Круто, надож было так купиться на ASBroadcaster. Блин а почему, на flash-rapper и в уроке здесь на сайте пишется именно ASBroadcaster?
Вообщем спасибо.

Старый 22.10.2004, 18:09
Proman вне форума Посмотреть профиль Отправить личное сообщение для Proman Найти все сообщения от Proman
  № 4  
Proman
 
Аватар для Proman

Регистрация: Jul 2002
Адрес: Запорожье
Сообщений: 56
Отправить сообщение для Proman с помощью ICQ
Используй класс EventDispatcher
допустим твой класс:
Код:
import mx.events.EventDispatcher;
class Babble {
	
	function Babble() {
		mx.events.EventDispatcher.initialize(this);
		
	}
	function say(phrase:String) {
		trace(phrase);
		var eventObject:Object = {target:this, type:'said'};
		eventObject.phrase = phrase;
		dispatchEvent(eventObject);
	}
	function dispatchEvent() {
	}
	function addEventListener() {
	}
	function removeEventListener() {
	}
	
}
в кадре пишеш:
Код:
var chat:Babble = new Babble();
var listener:Object = new Object; 
listener.said = function(event) {
	trace("Фраза сказана!");
	trace("Свойство type: "+ event.type);
	trace("Свойство target: "+ event.target);
	trace("Свойство phrase: "+ event.phrase);
}
chat.addEventListener("said",listener);


chat.say("Hello World!");
мы создали свое собственное событие
Ты это имел ввиду?
__________________
Don't use the Force, Luke - try to THINK!

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

Регистрация: Jan 2002
Адрес: Kharkov
Сообщений: 57
Цитата:
Оригинал написал(а) Proman
Используй класс EventDispatcher
допустим твой класс:
Код:
import mx.events.EventDispatcher;
class Babble {
	
	function Babble() {
		mx.events.EventDispatcher.initialize(this);
		
	}
	function say(phrase:String) {
		trace(phrase);
		var eventObject:Object = {target:this, type:'said'};
		eventObject.phrase = phrase;
		dispatchEvent(eventObject);
	}
	function dispatchEvent() {
	}
	function addEventListener() {
	}
	function removeEventListener() {
	}
	
}
в кадре пишеш:
Код:
var chat:Babble = new Babble();
var listener:Object = new Object; 
listener.said = function(event) {
	trace("Фраза сказана!");
	trace("Свойство type: "+ event.type);
	trace("Свойство target: "+ event.target);
	trace("Свойство phrase: "+ event.phrase);
}
chat.addEventListener("said",listener);


chat.say("Hello World!");
мы создали свое собственное событие
Ты это имел ввиду?
Ну вообщем чувствую, что то, но вот до конца понять не получается . Если не сложно может объяснишь?
mx.events.EventDispatcher.initialize(this); это я так понимаю объявляется текущий класс генератором событий.
dispatchEvent(eventObject); - это генерация события? или тут какой то другой принцип изпользуется?
Не подскажешь, где можно прочитать про этот класс?


Последний раз редактировалось Manowar1; 25.10.2004 в 11:15.
Старый 25.10.2004, 13:59
Proman вне форума Посмотреть профиль Отправить личное сообщение для Proman Найти все сообщения от Proman
  № 6  
Proman
 
Аватар для Proman

Регистрация: Jul 2002
Адрес: Запорожье
Сообщений: 56
Отправить сообщение для Proman с помощью ICQ
EventDispatcher.initialize(this); -- методы класса EventDispatcher копируються в твой класс.
var dispatchEvent:Function;
var addEventListener:Function;
var removeEventListener:Function;

собственно методы которые копируються
dispatchEvent -- посылает обьект события всем зарегистрированным с твоим классом listener-ам.
Где почитать не знаю, в хэлпе есть и собственно сам \Flash MX 2004\en\First Run\Classes\mx\events\EventDispatcher.as я его читал
__________________
Don't use the Force, Luke - try to THINK!

Старый 25.10.2004, 18:15
Manowar1 вне форума Посмотреть профиль Отправить личное сообщение для Manowar1 Найти все сообщения от Manowar1
  № 7  
Manowar1

Регистрация: Jan 2002
Адрес: Kharkov
Сообщений: 57
твой пример если взять так прямо работает без проблем, но я попытался вставить, туда куда мне нужно, и ноль реакций.

Щас опишу ситуацию. У меня есть класс, котоорый привязан к мувиклипу по средствам Linkage и наследуется от класса MovieClip. На главную сцену я его переношу посредством attachMovie. При этоом по идее создаётся объект этого класса автоматически. Но эвенты совсем не хотят работать.

Вот пример класса (всё не относящееся к делу выкинуто)
Код:
import mx.events.EventDispatcher;
class loader extends MovieClip{
	var x:Number; 
	var y:Number;
	var barWidth:Number;
                var target:MovieClip;

         function loader(){
                 ...........................
                 mx.events.EventDispatcher.initialize(this);
                 onEnterFrame = run;
                 ................................
         }
         function run() {
                 ...............................
                 setFinishHandler();
                 ...............................
         }
         function setFinishHandler(){

	var eventObject:Object = {target:this, type:'eventMovieLoaded'};
		dispatchEvent(eventObject);
		
        }
        function dispatchEvent() {
        }
        function addEventListener() {
        }
        function removeEventListener() {
        }
}
в вызове делаю так
Код:
var obj:Object = new Object();
obj.target = _root;
obj.x = 100;
obj.y = 100;
obj.barWidth = 300;

var aObj:Object = new Object();
aObj.eventMovieLoaded = function(eventObj){
	trace('loaded');
}
_root.attachMovie('loader', 'loader1', 2, obj);


_root.loader1.addEventListener(aObj);
trace(_root.loader1.x);
Вопрос всё тотже, где ошибка и как её исправить?

Старый 26.10.2004, 11:37
Manowar1 вне форума Посмотреть профиль Отправить личное сообщение для Manowar1 Найти все сообщения от Manowar1
  № 8  
Manowar1

Регистрация: Jan 2002
Адрес: Kharkov
Сообщений: 57
Блин всё работает, не знаю почему, но всё заработало.
Простот поменял имя у эвента и всё...

Старый 26.10.2004, 15:08
Proman вне форума Посмотреть профиль Отправить личное сообщение для Proman Найти все сообщения от Proman
  № 9  
Proman
 
Аватар для Proman

Регистрация: Jul 2002
Адрес: Запорожье
Сообщений: 56
Отправить сообщение для Proman с помощью ICQ
Код:
_root.loader1.addEventListener(aObj);
Сдаеться мне проблема здесь. Метод addEventListener должен получать два параметра (имя события и ссылку на обьект Listener или функцию)
__________________
Don't use the Force, Luke - try to THINK!

Старый 27.10.2004, 10:54
Manowar1 вне форума Посмотреть профиль Отправить личное сообщение для Manowar1 Найти все сообщения от Manowar1
  № 10  
Manowar1

Регистрация: Jan 2002
Адрес: Kharkov
Сообщений: 57
Да это верно, без этого параметра оно тооже не работает, это я просто добавил код, после определённых колдовских манипуляция с целью обеспечения его работы . А в начале я с параметром передовал, но увы.. Сейчас всё работает, мне кажется что я толи букву неправильную где-то записал, тооли ещё что-то в этом роде.

Кстати может подскажешь, пытался в этоом классе dispatcherEvent раставлять trace, но они нифига не работали, получается, что флеш откудато скомпиленный вариант класса берёт, не знаешь как его можно пересобрать?

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

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

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


 


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


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