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

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 28.03.2008, 10:24
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 11  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Вобщем, если сильно хочется с LC это делать и чтобы можно было открывать несколько окон, то принцип такой: обе флешки знают первоначальное имя соединения, но как только соединение произошло - флешка, которая сендит генерит уникальное имя для нового соединения и высылает его флешке, которая коннектится, после чего закрывает соединение. Вторая флешка после этого так же закрывает соединение и конектится по новой на уникальное соединение. Единственное что... ЛК работает медленнее чем скрипт внутри плеера, поэтому нужно принимать во внимание, что все эти переконекты произойдут не сразу а через доли секунды после. Ну и соответственно учесть это в реализации, т.е. все шаги должны проверять успешное окончание предыдущего шага, а не просто выполнятся один за другим.
Да, по поводу третей флешки... ну, даж не знаю, ЖаваСкрипт - как-то проще и надежнее выглядит. Больше чем 1 флешка не может приконектится к одному соединению, это значит, что прийдется создавать 2 соединения и подключаться и туда и туда.
__________________
Hell is the possibility of sanity


Последний раз редактировалось wvxvw; 28.03.2008 в 10:29.
Старый 28.03.2008, 10:30
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 12  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
http://www.flasher.ru/forum/showthread.php?t=82922

Старый 28.03.2008, 10:50
alexcon314 вне форума Посмотреть профиль Отправить личное сообщение для alexcon314 Найти все сообщения от alexcon314
  № 13  
Ответить с цитированием
alexcon314
listener

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
к вопросу о LocalConnection. попробуйте посмотреть вот этот пример. он очень простой.
Вложения
Тип файла: zip Exchange.zip (91.0 Кб, 58 просмотров)


Последний раз редактировалось alexcon314; 28.03.2008 в 10:52.
Старый 28.03.2008, 15:12
джонатан вне форума Посмотреть профиль Отправить личное сообщение для джонатан Найти все сообщения от джонатан
  № 14  
Ответить с цитированием
джонатан
 
Аватар для джонатан

Регистрация: Jan 2007
Адрес: Минск
Сообщений: 781
Отправить сообщение для джонатан с помощью Skype™
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 = "";
};
Во флешке b:

Код:
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 = "";
};
И соответственно внес изменения во флешки "а" и "b", получилось следующее:
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 = "";
};
B:

Код:
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 = "";
};
Итог: Теперь обмениваются между собою флешка "a" и флешка "c", а флешка "b" не принимает, не отправляет.

Где же ошибка(и)?

Заранее благодарен, за убитое время, на меня дурака
__________________
Убейте меня!


Последний раз редактировалось джонатан; 28.03.2008 в 16:44.
Старый 28.03.2008, 17:49
alexcon314 вне форума Посмотреть профиль Отправить личное сообщение для alexcon314 Найти все сообщения от alexcon314
  № 15  
Ответить с цитированием
alexcon314
listener

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
первое что бросилось в глаза: у вас на ОДНУ И ТУ ЖЕ кнопку привязаны РАЗНЫЕ функции. выполняться будет та, которую привязали последней.
ну а вообще вот:
Код:
//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 = "";
};
// чтобы слать сообщения избирательно, нужно делать двае кнопки.
только задуматься о том, как все это добро будет работать ОДНОВРЕМЕННО в двух разных окнах браузера стоит. и стоит прислушаться к _etc в топике, ссылку на который он дал. ( вариант Nox'a с JS лично мне менее симпатичен просто , хорошо когда все в одном месте).
данный пример не более чем упражнение преред решением действительно серьезной задачи. имейте это в виду.
кстати, Fernando Costa дал вам еще один неплохой вариант законнектить несколько флешек. у него насколько я понял пересылаются сообщения не напрямую а через "сервер", который "помнит" всех своих клиентов в списке и шлет в адрес переданное ему сообщение.


Последний раз редактировалось alexcon314; 28.03.2008 в 17:59.
Старый 28.03.2008, 21:11
джонатан вне форума Посмотреть профиль Отправить личное сообщение для джонатан Найти все сообщения от джонатан
  № 16  
Ответить с цитированием
джонатан
 
Аватар для джонатан

Регистрация: Jan 2007
Адрес: Минск
Сообщений: 781
Отправить сообщение для джонатан с помощью Skype™
alexcon314 Огромное спасибо за помощь! Я кстати уже был разобрался. Все понял. Вот влез написать, что уже все понял как делать, и тут Вы все расписали.
Спасибо товарищи! Одного зайца убил с Вашей помощью. Теперь буду рассматривать другие варианты, в том числе и те, что с JS.
Еще раз спасибо!

Вот для болванов вроде меня, я отправляю подробный FAQ, в котором я расписал все детально, и очень подробно. Уверен, вопросов после прочтения не возникнет!

LocalConnection_FAQ.doc
__________________
Убейте меня!


Последний раз редактировалось джонатан; 28.03.2008 в 23:02.
Старый 30.03.2008, 04:25
джонатан вне форума Посмотреть профиль Отправить личное сообщение для джонатан Найти все сообщения от джонатан
  № 17  
Ответить с цитированием
джонатан
 
Аватар для джонатан

Регистрация: Jan 2007
Адрес: Минск
Сообщений: 781
Отправить сообщение для джонатан с помощью Skype™
Вот теперь буду вас мучать вопросами по поводу кода от госоподина __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);
 }
}
Естественно коментариев автора, я не дождусь, но надеюсь, что хоть кто-то всеже поможет мне.

Заранее, искренне благодарен. Низкий Вам поклон дорогие друзья.
__________________
Убейте меня!

Старый 30.03.2008, 15:48
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 18  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
А что именно непонятно в коде? Я вроде и комментарии в той теме оставил. Если внимательно прочитать тему, то никаких вопросов не должно возникнуть.

Старый 30.03.2008, 18:21
AL.exe вне форума Посмотреть профиль Отправить личное сообщение для AL.exe Посетить домашнюю страницу AL.exe Найти все сообщения от AL.exe
  № 19  
Ответить с цитированием
AL.exe
 
Аватар для AL.exe

Регистрация: Jan 2004
Адрес: Net
Сообщений: 1,049
Отправить сообщение для AL.exe с помощью ICQ
Может, я и извращенец, но я бы попробовал сначала сделать вообще через sharedObject
__________________
Дело не в тебе

Старый 30.03.2008, 20:13
джонатан вне форума Посмотреть профиль Отправить личное сообщение для джонатан Найти все сообщения от джонатан
  № 20  
Ответить с цитированием
джонатан
 
Аватар для джонатан

Регистрация: Jan 2007
Адрес: Минск
Сообщений: 781
Отправить сообщение для джонатан с помощью Skype™
__etc Прочел эту тему очень много раз. Может там и все ясно, но только не мне. Не забывайте, что я в этом деле еще совсем новичок. А непонятно мне в коде, что куда писать. Тоесть как я уже говорил у меня 3 флешки, "A", "B" и "C". И что куда писать я не понимаю. Код значительно отличается от передыдущего варианта, в котором я всетаки с горем пополам разобрался. А то что если открыть эту страницу в дувух окнах будет глючить, ну никуда не катит. Хочу сделать, чтоб уже все было круто. Помогите пожалуйста!
__________________
Убейте меня!

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

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

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


 


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


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