![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Jan 2003
Адрес: kharkov
Сообщений: 51
|
Попробовал я перевести проект с as1 на as2 и наткнулся на грабли:
Один из обьектов(obj1) был главным бродкастером (ASbroadcaster.initialize(obj1)) Другие принимали сообщения(obj2.prototype.onEvent=function(){} ), но все эти obj находились в разных swf Все работало,но когда попытался загнать все это под 7-ку сообщения не воспринимаются! В экспорте ставлю как AS1.0 Я понимаю что для AS2.0 все подругому, но чем же мне заменить главного бродкастера??? |
|
|||||
|
МЕГАФЛЭШЕР
Регистрация: 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. |
|
|||||
|
Регистрация: Jan 2003
Адрес: kharkov
Сообщений: 51
|
1-й вариант это больше для 6-ки
2,3 для 7-ки, но в чем тогда отличается broadcasterMX ? Я тут начал help рыть и наткнулся на диспечер как обьект и интересная штука интерфейсы.Вот последние должны воспринимать методы как события.Это я еще не пробовал, кто попробует напишите.Но я так понимаю все равно точкой подключения должно быть addListener(obj1).Тогда получается,что через интерфейсы обмен событиями организовывать смысла нет.Опять через бродкастер что ли? |
|
|||||
|
Регистрация: Jan 2003
Адрес: kharkov
Сообщений: 51
|
1-й вариант это больше для 6-ки
2,3 для 7-ки, но в чем тогда отличается broadcasterMX ? Я тут начал help рыть и наткнулся на диспечер как обьект и интересная штука интерфейсы.Вот последние должны воспринимать методы как события.Это я еще не пробовал, кто попробует напишите.Но я так понимаю все равно точкой подключения должно быть addListener(obj1).Тогда получается,что через интерфейсы обмен событиями организовывать смысла нет.Опять через бродкастер что ли? |
![]() |
Часовой пояс GMT +4, время: 18:09. |
|
|
« Предыдущая тема | Следующая тема » |
|
|