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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 25.12.2014, 12:52
grafillo! вне форума Посмотреть профиль Отправить личное сообщение для grafillo! Найти все сообщения от grafillo!
  № 1  
Ответить с цитированием
grafillo!

Регистрация: Sep 2011
Сообщений: 366
По умолчанию Как обработать запрос LocalConnection

Цель запретить запуск двух приложений на одном компьютере, но когда пишу код то приложение подключается само к себе сразу и срабатывает функция view. Когда запускаю второе приложение то выдаёт ошибку что приложение уже подключено, как обработать такой запрос правильно?


Код AS3:
import flash.net.LocalConnection;
 
 
var conn:LocalConnection = new LocalConnection();
conn.client = this;
conn.connect ("coonect");
conn.send("coonect","view","privet");
 
function view(s:String){
	trace (s);
 
	}

Старый 25.12.2014, 14:27
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 2  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
http://www.flasher.ru/forum/showthread.php?t=130851
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 25.12.2014, 14:37
grafillo! вне форума Посмотреть профиль Отправить личное сообщение для grafillo! Найти все сообщения от grafillo!
  № 3  
Ответить с цитированием
grafillo!

Регистрация: Sep 2011
Сообщений: 366
а можно это какнить в моём коде исправить? чтобы мне понятней было х)

Старый 25.12.2014, 15:24
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 4  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Вряд ли я смогу "исправить" ваш код. В нем нет ошибок. Он делает ровно то, что вы и описали. Ссылкой ваше я вам дал алгоритм работы, который подходит для задачи проверки второго запущенного приложения.
Алгоритма, воплощенного в коде у меня под рукой нет. Простите.
Кстати, с помощью LocalConnection я когда-то прозрачно для приложения эмулировал сервер. Была одна флешка, специально написанная как "серверная" часть, а так же был и обычный клиент. На одной и той же машине запускался "сервер" и некоторое количество клиентов. Можно было логиниться в них под разными персонажами и участвовать в игровом процессе. Было забавно наблюдать, как вживую могут взаимодействовать между собой клиенты, предназначенные работать на разных хостах.
Эффект достигался подменой некоего класса, отвечающего за конкретную медиа-среду передачи данных, но взаимодействующего через LocalConnection.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 25.12.2014, 16:40
grafillo! вне форума Посмотреть профиль Отправить личное сообщение для grafillo! Найти все сообщения от grafillo!
  № 5  
Ответить с цитированием
grafillo!

Регистрация: Sep 2011
Сообщений: 366
но как обработать запрос так чтобы флешка поняла что она запущена уже во второй раз?
что надо ловить или к чему надо обращаться?

Старый 25.12.2014, 16:55
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 6  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Код AS3:
try {
    conn.connect ("coonect");
} catch (error:Error) {
    trace('Приложение уже запущено');
}
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 29.12.2014, 01:46
grafillo! вне форума Посмотреть профиль Отправить личное сообщение для grafillo! Найти все сообщения от grafillo!
  № 7  
Ответить с цитированием
grafillo!

Регистрация: Sep 2011
Сообщений: 366
Ээто мы ловим событие последним запущеным приложением. А как сделать так чтобы дать команду первому приложению отключится, а последнему остаться?

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

блогер
Регистрация: Sep 2011
Адрес: Москва
Сообщений: 533
Записей в блоге: 4
Цитата:
А как сделать так чтобы дать команду первому приложению отключится, а последнему остаться
В каком смысле? Браузеру эту команду вы дать не сможете (тем более если приложение будет в разных браузерах открыто). А если реализовывать это во флеше, напишите функцию, которая будет блочить одну из флешек при обнаружении 2й флешки по LocalConnection.

Старый 29.12.2014, 13:57
grafillo! вне форума Посмотреть профиль Отправить личное сообщение для grafillo! Найти все сообщения от grafillo!
  № 9  
Ответить с цитированием
grafillo!

Регистрация: Sep 2011
Сообщений: 366
Цитата:
Сообщение от PainKiller Посмотреть сообщение
А если реализовывать это во флеше, напишите функцию, которая будет блочить одну из флешек при обнаружении 2й флешки по LocalConnection.
вот именно эту функцию я и хочу написать, вопрос как это сделать? чтобы блочилась первая флешка а не вторая.

Старый 30.12.2014, 10:45
PainKiller вне форума Посмотреть профиль Отправить личное сообщение для PainKiller Найти все сообщения от PainKiller
  № 10  
Ответить с цитированием
PainKiller
 
Аватар для PainKiller

блогер
Регистрация: Sep 2011
Адрес: Москва
Сообщений: 533
Записей в блоге: 4
Вообще то вам уже написали как это сделать, дублирую еще раз:
Код AS3:
private var lc:LocalConnection = new LocalConnection()
 
try
{
      lc.connect ("Main");
      //запускаемся как обычно
      initApp();
}
catch (e:Error)
{
      //запущена 2я флешка, блокируем приложение
     blockSWF();
}
где в функции blockSWF() можно, например выводить попап блокирующий экран приложения. Правда я немного погуглил, и нашел что у этого решения бывают проблемы, но можно поэкспериментировать.

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

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

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


 


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


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