Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как обработать запрос LocalConnection (http://www.flasher.ru/forum/showthread.php?t=209816)

grafillo! 25.12.2014 12:52

Как обработать запрос 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);
 
        }


dimarik 25.12.2014 14:27

http://www.flasher.ru/forum/showthread.php?t=130851

grafillo! 25.12.2014 14:37

а можно это какнить в моём коде исправить? чтобы мне понятней было х)

dimarik 25.12.2014 15:24

Вряд ли я смогу "исправить" ваш код. В нем нет ошибок. Он делает ровно то, что вы и описали. Ссылкой ваше я вам дал алгоритм работы, который подходит для задачи проверки второго запущенного приложения.
Алгоритма, воплощенного в коде у меня под рукой нет. Простите.
Кстати, с помощью LocalConnection я когда-то прозрачно для приложения эмулировал сервер. Была одна флешка, специально написанная как "серверная" часть, а так же был и обычный клиент. На одной и той же машине запускался "сервер" и некоторое количество клиентов. Можно было логиниться в них под разными персонажами и участвовать в игровом процессе. Было забавно наблюдать, как вживую могут взаимодействовать между собой клиенты, предназначенные работать на разных хостах.
Эффект достигался подменой некоего класса, отвечающего за конкретную медиа-среду передачи данных, но взаимодействующего через LocalConnection.

grafillo! 25.12.2014 16:40

но как обработать запрос так чтобы флешка поняла что она запущена уже во второй раз?
что надо ловить или к чему надо обращаться?

dimarik 25.12.2014 16:55

Код AS3:

try {
    conn.connect ("coonect");
} catch (error:Error) {
    trace('Приложение уже запущено');
}


grafillo! 29.12.2014 01:46

Ээто мы ловим событие последним запущеным приложением. А как сделать так чтобы дать команду первому приложению отключится, а последнему остаться?

PainKiller 29.12.2014 13:24

Цитата:

А как сделать так чтобы дать команду первому приложению отключится, а последнему остаться
В каком смысле? Браузеру эту команду вы дать не сможете (тем более если приложение будет в разных браузерах открыто). А если реализовывать это во флеше, напишите функцию, которая будет блочить одну из флешек при обнаружении 2й флешки по LocalConnection.

grafillo! 29.12.2014 13:57

Цитата:

Сообщение от PainKiller (Сообщение 1176981)
А если реализовывать это во флеше, напишите функцию, которая будет блочить одну из флешек при обнаружении 2й флешки по LocalConnection.

вот именно эту функцию я и хочу написать, вопрос как это сделать? чтобы блочилась первая флешка а не вторая.

PainKiller 30.12.2014 10:45

Вообще то вам уже написали как это сделать, дублирую еще раз:
Код AS3:

private var lc:LocalConnection = new LocalConnection()
 
try
{
      lc.connect ("Main");
      //запускаемся как обычно
      initApp();
}
catch (e:Error)
{
      //запущена 2я флешка, блокируем приложение
    blockSWF();
}

где в функции blockSWF() можно, например выводить попап блокирующий экран приложения. Правда я немного погуглил, и нашел что у этого решения бывают проблемы, но можно поэкспериментировать.


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

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