PDA

Просмотр полной версии : Local connection?


repz
20.11.2006, 12:57
Была тема про, то как сделать так , что бы при открытии 2 и болле страниц одновременно все работало корректно, т.е. что бы при каждом соединение посылался некий уникальный индефикатор.
P.s. К классу потапенко не посылать, просьба пояснить кто знает, как реализовать, более доступным языком. Сделано все как в учебнике, просьба не ругаться.
Вот есть источник:
contacts_mc.onRelease = function() {
var tel_out:LocalConnection=new LocalConnection();
tel_out.send("radio","contact","qqqq");
trace("contact-ist"); }


А вот приемник:
tel_in.connect("radio");
tel_in["contact"]=function(){
mcLoader.unloadClip(myLoader);
mcLoader.loadClip("***.swf",myLoader);
trace("contact-priemnik"); }

etc
20.11.2006, 13:57
http://flasher.ru/forum/showthread.php?t=82922&highlight=LocalConnection+%F1%F2%F0%E0%ED%E8%F6%FB

repz
20.11.2006, 14:56
Спасиб прочитал уже давно, только вот как, точнее после какого действия вставлять свой код, если можно по подробнее.

etc
20.11.2006, 15:02
Собственно там, где стоит трейс. Это в случае получателя, а если вещателя, то после main_lc.send можно вешать свои действия.

off:
/me скоро возненавидит словосочетания «по подробнее», «небольшой примерчик», «дайте ссылочку», «маленький исходничек»…

repz
20.11.2006, 15:06
Спасибо!! бу пробывать.
P.s. спасибо-то никода не надоест....к тому же иногда не сразу въезжаешь, что к чему...

repz
20.11.2006, 15:19
Ставлю в получателе после трейса:
main_lc = new LocalConnection();
main_lc.onConnect = function(id) {
trace('Connection id: '+id);
tel_in.connect("radio");
tel_in["contact"]=function(){
trace("contact-poluch"); }
}
exchange_lc = new LocalConnection();
isObserver = false;
connectionId = "lc_"+(new Date().getTime());
exchange_lc.onGetId = function(id) {
connectionId = id;
exchange_lc.close();
createMainLC();
}
exchange_lc.onStatus = function(status) {
if (status.level == 'status') {
createMainLC();
} else {
exchange_lc.connect('exchange');
}
}
exchange_lc.send('exchange', 'onGetId', connectionId);
createMainLC = function () {
if (isObserver) {
main_lc.send(connectionId, 'onConnect',connectionId);
} else {
main_lc.connect(connectionId);
}
}

В источнике после main_lc.send:
main_lc = new LocalConnection();
main_lc.onConnect = function(id) {
trace('Connection id: '+id);

}
exchange_lc = new LocalConnection();
isObserver = true;
connectionId = "lc_"+(new Date().getTime());
exchange_lc.onGetId = function(id) {
connectionId = id;
exchange_lc.close();
createMainLC();
}
exchange_lc.onStatus = function(status) {
if (status.level == 'status') {
createMainLC();
} else {
exchange_lc.connect('exchange');
}
}
exchange_lc.send('exchange', 'onGetId', connectionId);
createMainLC = function () {
if (isObserver) {
main_lc.send(connectionId, 'onConnect',connectionId);
contacts_mc.onRelease = function() {
var tel_out:LocalConnection=new LocalConnection();
tel_out.send("radio","contact","qqqq");
trace("contact"); }
} else {
main_lc.connect(connectionId);

}
}

Не работает, знаю, наверно, что нуно, наверно, на кнопку вешать саму отсылку???

etc
20.11.2006, 15:27
Прежде чем использовать готовый код, нужно в нём разобраться, а не писать свой код куда попало.

repz
20.11.2006, 15:40
Поэтому я и прошу рассказать, как можно использовать свой код в Вашем, если вы (кто вставляет свой в Ваш) нуб.

etc
20.11.2006, 15:53
Как работает код — описано в теме по ссылке, разберись с тем, как он работает или используй вариант Нокса с JS.
main_lc — это соединение, через которое происходит передача данных. У приёмника и у вещателя должен быть этот код, с указанием, кто вещатель, а кто приёмник. Дополнительные методы у приёмника можно дописать (один из этих методов — onConnect).

Ты же создаёшь своё соединения, не используя вообще ни main_lc, ничего — смысла в таком случае от всего этого кода никакого.

repz
20.11.2006, 16:12
Воооооот, уже кое-что ясно становится,т.е. действие на кнопку вешать с помощью main_lc?

etc
20.11.2006, 16:32
Это уже как тебе требуется.

repz
20.11.2006, 16:49
Мне требуется, что бы при нажатии на кнопку происходило, то что описано в 1 посте, но проверка по ид уже тоже прошла.

etc
20.11.2006, 17:07
Ну так напиши в main_lc.send

contacts_mc.onRelease = function() {
main_lc.send(connectionId,"contact","qqqq");
trace("contact");
};
И добавь метод contact у main_lc.
Я же говорю — нужно разобраться, как это работает для начала.

repz
20.11.2006, 17:33
А в приемнике соответственно:
main_lc.connect(connectionId);
main_lc["contact"]=function(){
trace("contact-priem"); }
P.S. Вопрос нуба, как метод contact у main_lc добавить-то :rolleyes:

etc
20.11.2006, 17:38
Ты его уже добавил, только непонятно, зачем в квадратных скобках, ну да ладно…
Добавлять метод можно после объявления onConnect, необязательно после .connect.

repz
20.11.2006, 17:40
Ага вот терь совсем се понятно, т.е. моно было так:
main_lc.contact = function(){

etc
20.11.2006, 17:46
Д, можно так. (Только если это не AS2/AS3 — в этом случае нужно будет писать класс, расширяющий LocalConnection).
И советую ещё раз разобраться в том, как работает код — я уже описал в той теме его логику.

repz
20.11.2006, 17:56
Бу разбираться, просто кое что непонятным остается... я спрошу если чего не дойдет?