PDA

Просмотр полной версии : Как пользоваться LocalConnection?


ashDesigner
01.04.2004, 05:00
Кто-нибудь знает, как пользоваться Local Connection?
Почему-то возникают проблемы, когда клип-получатель начинает пересылать данные. А если загрузить клип-отправитель первым, то вообще ничего не работает. Как определить, что "соседний" клип загружен?

Dindin
01.04.2004, 09:03
персылка данных осуществляется методом .send(); если в момент отправления получатель не существует, то данные, соответсвенно уходят в null. А вообще-то об этом уже много всего было сказано.

Nox Noctis
01.04.2004, 10:43
если передать надо, например, в другое окно броузера, в попап скажем, то перед пересылкой надо убедиться что свфка в этом окошке загрузилась. я лично сделал такую систему ниппель:

в свф-источнике:
reciever = new LocalConnection();
reciever.get = function() {
sender = new LocalConnection();
sender.send("popup", "out", ...);
this.close();
};
reciever.connect("main");

в свф-приёмнике:
reciever = new LocalConnection();
reciever.out = function(o) {
//
// ...
//
this.close();
};
reciever.connect("popup");
//
sender = new LocalConnection();
sender.send("main", "get");

таким образом, когда загрузился свф-приёмник, он вызывает в главном свфнике через локалконнекшн функцию, которая отправляет всё что нужно.

можно и проще, можно обойтись только вызовом функции в источнике - но вызывать всё равно нужно из приёмника только когда тот загрузится.

ashDesigner
01.04.2004, 15:53
Спасибо! :))

Я теперь понял, почему у меня глюки были. Дело в том, что у меня есть книга одна, якобы созданная разработчиками Flash. Там, конечно, много чего интересного - только вот по поводу LocalConnection они облажались, т.к. методы .send и .connect они решили использовать у одного и того же объекта:

lc=new LocalConnection;

lc.myMethod = function(){
////
////
}

lc.send('testConnection','receiverMethod');
lc.connect('testConnection');

- Вот у меня все и висло поэтому.

А вам спасибо! :))

Nox Noctis
01.04.2004, 16:08
ну собсна можно и так :) ничего в этом криминального нет, но на грабли так наступить несомненно легче :)

надо помнить одно - одновременно может быть открыто на приём только одно соединение с данным именем.

lc.send('testConnection','receiverMethod');
lc.connect('testConnection');

то есть получается мы засылаем сообщение куда-то в соединение 'testConnection', и тут же то соединение отключаем, включая его относительно объекта lc.

получается что соединение 'testConnection' закрывается после первого же сообщения и открывается заново.

ashDesigner
01.04.2004, 17:31
Блин, какая-то фигня все равно! Либо я чего-то не догоняю, либо одно из двух :))

Кто-нибудь мне может помочь разобраться в моем коротком коде LocalConnection?

Я файл приаттачил, там два .fla . Один test_sender , другой test_receiver . В каждом по три кадра. Мне нужно, чтобы оба работали вне зависимости от того, какой из них будет загружен первым.

Блин, ребят, мне эта фигня уже в печенках сидит - я просто флешовый чат делаю для www.moralcodex.ru (http://www.moralcodex.ru) , у меня уже все готово, кроме этой фигни - окна никак не хотят снюхаться! :))

Буду очень благодарен, если кому-нибудь будет не лень прислать мне мой же переделанный код. Запечатлю имя человека на сайте www.moralcodex.ru (http://www.moralcodex.ru) ! :))

Dindin
01.04.2004, 19:50
Проще надо быть, и люди к вам потянутся.

ashDesigner
02.04.2004, 03:19
Спасибо большое! :))

Все, теперь до меня дошло наконец-то, а главное, все заработало! :))

Обещание свое выполню, на сайте www.moralcodex.ru (http://www.moralcodex.ru) обязательно в скором времени выложу Dindin, и, конечно, Nox Noctis, благодарности за поддержку! :))

P.S. Там, кстати, скоро и чат мой Флешовый появится - загляните через недельку оценить :)) Всем, коуму интересно будет :))

P.P.S.: Спрашивайте, если что - я много чего зато другого умею, это у меня просто с LocalConnection глюки были :)) Могу рассказать, например, про баги при загрузке swf в FScrollPane-компонент, и т.д. :))

nicos
02.08.2004, 19:55
а у меня ещё такой вопрос можно ли отправку делать не одному получателю а неограниченному количеству???

Dindin
03.08.2004, 10:45
Всмысле? LocalConnection, который посылает данные на несколько окальных мувиков?

FreeLander
03.08.2004, 17:06
Оригинал написал(а) nicos
а у меня ещё такой вопрос можно ли отправку делать не одному получателю а неограниченному количеству???
типа широковещательного сообщения не получается - надо для каждой пары соединение отдельное создавать:(

Dindin
03.08.2004, 17:22
А SharedObject вам на что?

FreeLander
03.08.2004, 22:33
Оригинал написал(а) Dindin
А SharedObject вам на что?
комплексное решение проблемы:)