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

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

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

Регистрация: Jan 2003
Адрес: kharkov
Сообщений: 51
По умолчанию Чем заменить broadcastMessage ?

Попробовал я перевести проект с as1 на as2 и наткнулся на грабли:
Один из обьектов(obj1) был главным бродкастером (ASbroadcaster.initialize(obj1))
Другие принимали сообщения(obj2.prototype.onEvent=function(){} ), но все эти obj находились в разных swf
Все работало,но когда попытался загнать все это под 7-ку
сообщения не воспринимаются! В экспорте ставлю как AS1.0
Я понимаю что для AS2.0 все подругому, но чем же мне
заменить главного бродкастера???

Старый 24.11.2003, 16:36
john вне форума Посмотреть профиль Отправить личное сообщение для john Посетить домашнюю страницу john Найти все сообщения от john
  № 2  
john
МЕГАФЛЭШЕР

Регистрация: May 1999
Адрес: Россия, Москва
Сообщений: 1,181
вариант первый (неправильный): написать своего в коде:

Код:
if(AsBroadcaster == undefined)
{
	_global.ASBroadcaster={};
	ASBroadcaster.initialize=function(obj)
	{
		obj.addListener=this.addListener;
		obj.removeListener=this.removeListener;
		obj.broadcastMessage=this.broadcastMessage;
		obj._listeners=[];
		
		ASSetPropFlags(obj,["addListener","removeListener","broadcastMessage","_listeners"],7);
	}
	ASBroadcaster.addListener=function(obj)
	{
		this.removeListener(obj);
		this._listeners.push(obj);
		return true;
	}
	ASBroadcaster.removeListener=function(obj)
	{
		var a=this._listeners;
		var i=this._listeners.length;
		
		while(--i)
		{
			if(a[i] == obj)
			{
				a.splice(i,1);
				return true;
			}
		}
		return false;
	}
	ASBroadcaster.broadcastMessage=function(theEvent)
	{
		var a=this._listeners;
		var i=this._listeners.length;
		
		while(--i)
		{
			a[i][theEvent]();
		}
	}
	
	ASSetPropFlags(ASBroadcaster,null,7);
	ASSetPropFlags(_global,"ASBroadcaster",131);
}
вариант второй (более правильный)

import mx.transitions.BroadcasterMX;

_global.AsBroadcaster = BroadcasterMX;

AsBroadcaster.initialize(obj);


третий (почти правильный)

import mx.transitions.BroadcasterMX;

BroadcasterMX.initialize(obj);


Последний раз редактировалось john; 24.11.2003 в 16:38.
Старый 25.11.2003, 10:47
AndrM вне форума Посмотреть профиль Отправить личное сообщение для AndrM Найти все сообщения от AndrM
  № 3  
AndrM

Регистрация: Jan 2003
Адрес: kharkov
Сообщений: 51
1-й вариант это больше для 6-ки
2,3 для 7-ки, но в чем тогда отличается broadcasterMX ?
Я тут начал help рыть и наткнулся на диспечер как обьект
и интересная штука интерфейсы.Вот последние должны
воспринимать методы как события.Это я еще не пробовал,
кто попробует напишите.Но я так понимаю все равно точкой подключения должно быть addListener(obj1).Тогда получается,что через интерфейсы обмен событиями организовывать смысла нет.Опять через бродкастер что ли?

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

Регистрация: Jan 2003
Адрес: kharkov
Сообщений: 51
1-й вариант это больше для 6-ки
2,3 для 7-ки, но в чем тогда отличается broadcasterMX ?
Я тут начал help рыть и наткнулся на диспечер как обьект
и интересная штука интерфейсы.Вот последние должны
воспринимать методы как события.Это я еще не пробовал,
кто попробует напишите.Но я так понимаю все равно точкой подключения должно быть addListener(obj1).Тогда получается,что через интерфейсы обмен событиями организовывать смысла нет.Опять через бродкастер что ли?

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

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

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


 


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


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