![]() |
|
||||||||||
|
|||||
|
Modus ponens
|
Вобщем, если сильно хочется с LC это делать и чтобы можно было открывать несколько окон, то принцип такой: обе флешки знают первоначальное имя соединения, но как только соединение произошло - флешка, которая сендит генерит уникальное имя для нового соединения и высылает его флешке, которая коннектится, после чего закрывает соединение. Вторая флешка после этого так же закрывает соединение и конектится по новой на уникальное соединение. Единственное что... ЛК работает медленнее чем скрипт внутри плеера, поэтому нужно принимать во внимание, что все эти переконекты произойдут не сразу а через доли секунды после. Ну и соответственно учесть это в реализации, т.е. все шаги должны проверять успешное окончание предыдущего шага, а не просто выполнятся один за другим.
Да, по поводу третей флешки... ну, даж не знаю, ЖаваСкрипт - как-то проще и надежнее выглядит. Больше чем 1 флешка не может приконектится к одному соединению, это значит, что прийдется создавать 2 соединения и подключаться и туда и туда.
__________________
Hell is the possibility of sanity Последний раз редактировалось wvxvw; 28.03.2008 в 10:29. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
|
|
|||||
|
alexcon314 Сенк ю! Тут гораздо понятнее. Я даже было решил что я во всем разобрался. Но на практике, оказалось, что это не так. Давайте я покажу Вам, что я сделал, быть может вы укажете мне где я допустил ошибку.
Вобщем в файле, были две флешки, "a" и "c". На каждой из которых, имеется по две текстовые области (одна чтобы отправлять, а вторая, чтобы получать) и кнопка отправить. Во флешке "a" прописано: this.createTextField('answer', 10, 10, 10, 200, 50);
answer.border = true;
answer.type = "dynamic";
this.createTextField('reply', 11, 10, 70, 200, 50);
reply.border = true;
reply.type = "input";
var listener:LocalConnection = new LocalConnection();
listener.connect("bTOa");
listener.BswfSays = function(message) {
answer.text = message;
};
var sender:LocalConnection = new LocalConnection();
send_btn.onRelease = function() {
sender.send("aTOb", "AswfSays", reply.text);
reply.text = "";
};
this.createTextField('answer', 10, 10, 10, 200, 50);
answer.border = true;
answer.type = "dynamic";
this.createTextField('reply', 11, 10, 70, 200, 50);
reply.border = true;
reply.type = "input";
var listener:LocalConnection = new LocalConnection();
listener.connect("aTOb");
listener.AswfSays = function(message) {
answer.text = message;
};
var sender:LocalConnection = new LocalConnection();
send_btn.onRelease = function() {
sender.send("bTOa", "BswfSays", reply.text);
reply.text = "";
};
this.createTextField('answer', 10, 10, 10, 200, 50);
answer.border = true;
answer.type = "dynamic";
this.createTextField('reply', 11, 10, 70, 200, 50);
reply.border = true;
reply.type = "input";
var listener:LocalConnection = new LocalConnection();
listener.connect("bTOc");
listener.BswfSays = function(message) {
answer.text = message;
};
var sender:LocalConnection = new LocalConnection();
send_btn.onRelease = function() {
sender.send("cTOb", "CswfSays", reply.text);
reply.text = "";
};
var listener:LocalConnection = new LocalConnection();
listener.connect("aTOc");
listener.AswfSays = function(message) {
answer.text = message;
};
var sender:LocalConnection = new LocalConnection();
send_btn.onRelease = function() {
sender.send("cTOa", "CswfSays", reply.text);
reply.text = "";
};
A: this.createTextField('answer', 10, 10, 10, 200, 50);
answer.border = true;
answer.type = "dynamic";
this.createTextField('reply', 11, 10, 70, 200, 50);
reply.border = true;
reply.type = "input";
var listener:LocalConnection = new LocalConnection();
listener.connect("bTOa");
listener.BswfSays = function(message) {
answer.text = message;
};
var sender:LocalConnection = new LocalConnection();
send_btn.onRelease = function() {
sender.send("aTOb", "AswfSays", reply.text);
reply.text = "";
};
//Мои внесения.
var listener:LocalConnection = new LocalConnection();
listener.connect("cTOa");
listener.CswfSays = function(message) {
answer.text = message;
};
var sender:LocalConnection = new LocalConnection();
send_btn.onRelease = function() {
sender.send("aTOc", "AswfSays", reply.text);
reply.text = "";
};
this.createTextField('answer', 10, 10, 10, 200, 50);
answer.border = true;
answer.type = "dynamic";
this.createTextField('reply', 11, 10, 70, 200, 50);
reply.border = true;
reply.type = "input";
var listener:LocalConnection = new LocalConnection();
listener.connect("aTOb");
listener.AswfSays = function(message) {
answer.text = message;
};
var sender:LocalConnection = new LocalConnection();
send_btn.onRelease = function() {
sender.send("bTOa", "BswfSays", reply.text);
reply.text = "";
};
//Мои внесения.
var listener:LocalConnection = new LocalConnection();
listener.connect("cTOb");
listener.CswfSays = function(message) {
answer.text = message;
};
var sender:LocalConnection = new LocalConnection();
send_btn.onRelease = function() {
sender.send("bTOc", "BswfSays", reply.text);
reply.text = "";
};
Где же ошибка(и)? Заранее благодарен, за убитое время, на меня дурака ![]()
__________________
Убейте меня! Последний раз редактировалось джонатан; 28.03.2008 в 16:44. |
|
|||||
|
listener
|
первое что бросилось в глаза: у вас на ОДНУ И ТУ ЖЕ кнопку привязаны РАЗНЫЕ функции. выполняться будет та, которую привязали последней.
ну а вообще вот: //aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
this.createTextField('answer', 10, 10, 10, 200, 50);
answer.border = true;
answer.type = "dynamic";
this.createTextField('reply', 11, 10, 70, 200, 50);
reply.border = true;
reply.type = "input";
var listenerB:LocalConnection = new LocalConnection();
listenerB.connect("bTOa");
listenerB.BswfSays = function(message) {
answer.text = message;
};
var listenerC:LocalConnection = new LocalConnection();
listenerC.connect("cTOa");
listenerC.CswfSays = function(message) {
answer.text = message;
};
var sender:LocalConnection = new LocalConnection();
send_btn.onRelease = function() {
sender.send("aTOb", "AswfSays", reply.text);
sender.send("aTOc", "AswfSays", reply.text);
reply.text = "";
};
//bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
this.createTextField('answer', 10, 10, 10, 200, 50);
answer.border = true;
answer.type = "dynamic";
this.createTextField('reply', 11, 10, 70, 200, 50);
reply.border = true;
reply.type = "input";
var listenerA:LocalConnection = new LocalConnection();
listenerA.connect("aTOb");
listenerA.AswfSays = function(message) {
answer.text = message;
};
var listenerC:LocalConnection = new LocalConnection();
listenerC.connect("cTOb");
listenerC.CswfSays = function(message) {
answer.text = message;
};
var sender:LocalConnection = new LocalConnection();
send_btn.onRelease = function() {
sender.send("bTOa", "BswfSays", reply.text);
sender.send("bTOc", "BswfSays", reply.text);
reply.text = "";
};
// ccccccccccccccccccccccccccccccccccccccccccc
this.createTextField('answer', 10, 10, 10, 200, 50);
answer.border = true;
answer.type = "dynamic";
this.createTextField('reply', 11, 10, 70, 200, 50);
reply.border = true;
reply.type = "input";
var listenerA:LocalConnection = new LocalConnection();
listenerA.connect("aTOc");
listenerA.AswfSays = function(message) {
answer.text = message;
};
var listenerB:LocalConnection = new LocalConnection();
listenerB.connect("bTOc");
listenerB.BswfSays = function(message) {
answer.text = message;
};
var sender:LocalConnection = new LocalConnection();
send_btn.onRelease = function() {
sender.send("cTOa", "CswfSays", reply.text);
sender.send("cTOb", "CswfSays", reply.text);
reply.text = "";
};
// чтобы слать сообщения избирательно, нужно делать двае кнопки.
, хорошо когда все в одном месте).данный пример не более чем упражнение преред решением действительно серьезной задачи. имейте это в виду. кстати, Fernando Costa дал вам еще один неплохой вариант законнектить несколько флешек. у него насколько я понял пересылаются сообщения не напрямую а через "сервер", который "помнит" всех своих клиентов в списке и шлет в адрес переданное ему сообщение. Последний раз редактировалось alexcon314; 28.03.2008 в 17:59. |
|
|||||
|
alexcon314 Огромное спасибо за помощь! Я кстати уже был разобрался. Все понял. Вот влез написать, что уже все понял как делать, и тут Вы все расписали.
Спасибо товарищи! Одного зайца убил с Вашей помощью. Теперь буду рассматривать другие варианты, в том числе и те, что с JS. Еще раз спасибо! Вот для болванов вроде меня, я отправляю подробный FAQ, в котором я расписал все детально, и очень подробно. Уверен, вопросов после прочтения не возникнет! LocalConnection_FAQ.doc
__________________
Убейте меня! Последний раз редактировалось джонатан; 28.03.2008 в 23:02. |
|
|||||
|
Вот теперь буду вас мучать вопросами по поводу кода от госоподина __etc
Конечно, же с его кодом все работает гораздо корректнее, не смотря на то, что маловероятно, что кто-то захочет дважды открыть один и тот-же сайт, темболее в разных окнах. Но всеже лучше подстраховаться и на этот случай. А теперь вопрос. Этот код, кординально отличается от предыдущего, и поэтому я снова прошу вашей помощи. Разпишите пожалуйста, кому не трудно, и желательно поподробнее, что есть что в этом коде. А то я смотрю на него, прям как баран на новые ворота. 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);
} else {
main_lc.connect(connectionId);
}
}
Заранее, искренне благодарен. Низкий Вам поклон дорогие друзья.
__________________
Убейте меня! |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
А что именно непонятно в коде? Я вроде и комментарии в той теме оставил. Если внимательно прочитать тему, то никаких вопросов не должно возникнуть.
|
|
|||||
|
Может, я и извращенец, но я бы попробовал сначала сделать вообще через sharedObject
![]()
__________________
Дело не в тебе |
|
|||||
|
__etc Прочел эту тему очень много раз. Может там и все ясно, но только не мне. Не забывайте, что я в этом деле еще совсем новичок. А непонятно мне в коде, что куда писать. Тоесть как я уже говорил у меня 3 флешки, "A", "B" и "C". И что куда писать я не понимаю. Код значительно отличается от передыдущего варианта, в котором я всетаки с горем пополам разобрался. А то что если открыть эту страницу в дувух окнах будет глючить, ну никуда не катит. Хочу сделать, чтоб уже все было круто. Помогите пожалуйста!
__________________
Убейте меня! |
![]() |
![]() |
Часовой пояс GMT +4, время: 18:19. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|