Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Запрет на запуск нескольких экземпляров клипа. (http://www.flasher.ru/forum/showthread.php?t=99057)

Domovoy 27.07.2007 03:30

Запрет на запуск нескольких экземпляров клипа.
 
Как можно запретить многократный запуск одной и той же флешки? Пытался сделать через локал коннекшн, но не смог обойти получение данных самим клипом отправителем. Т.е. он сам себя вырубает.

DarkLight 27.07.2007 03:55

SharedObject с прописанным localPath при создании. Запущенная флешка проверяет, если нет объекта - создает. если есть - читает счетчик. Перед выходом из последней флешки счетчик обнуляется

Domovoy 27.07.2007 10:06

Так, как раз вчера заснул когда реализацию через шаредобжект начал обдумывать. НО! Если выход через созданную кнопку, то понятно как реализовать. А если плеер закрывается как виндоус приложение? Как отследить закрытие флешки?
Просто может видимо возникнуть ситуация, когда сохранится ненулевой счетчик. Тогда вообще запускаться перестанет.

etc 27.07.2007 10:10

DarkLight, тебе MyXus расскажет, как работает SO, пока не закрыта первая флешка. А работает он так, что пока открыта эта флешка, в SO продолжают находиться старые данные, даже если делать flush.

Я бы сделал просто connect у LocalConnection, проверяя onStatus. Если connect не удался, то закрывать нафиг.

CorC 27.07.2007 10:11

Используйте какие-нибудь оболочки, для отлова закрытия.
Можно так же таймаут на шаредобжект, типа, если прошло 5 мин, то можно дубликат открывать.

iNils 27.07.2007 13:13

Цитата:

Сообщение от __etc
DarkLight, тебе MyXus расскажет, как работает SO, пока не закрыта первая флешка. А работает он так, что пока открыта эта флешка, в SO продолжают находиться старые данные, даже если делать flush.

????
http://www.inils.ru/test/a.html
И код
Код:

var txt:TextField = this.createTextField("txt", 0, 10, 10, 200, 20);
var so:SharedObject = SharedObject.getLocal ("n", "/");
setInterval(this, "e", 100);
if (so.data.c) {
        cx = so.data.c;
} else {
        cx = 0;
}
function e () {
        cx++;
        txt.text = so.data.c;
        so.data.c = cx;
}

Или я то то не так понял?

etc 27.07.2007 13:17

Ну, результат налицо же, каждая новая флешка начинает свой «путь» с нуля. Либо с того числа, которое сохранила последняя закрытая флешка. И flush тут тоже не сработает, он куда-то в temp сохраняет файл, несмотря ни на что.

iNils 27.07.2007 13:21

А понял, я подумал, что внутри одного swf данные не меняются.

DarkLight 27.07.2007 16:52

Код:

var txt:TextField = this.createTextField("txt", 0, 10, 10, 200, 20);
var so:SharedObject = SharedObject.getLocal("n33", "/");
if (so.data.c) {
        cx = so.data.c;
} else {
        cx = 0;
}
e();
function e() {
        cx++;
        so.data.c = cx;
        txt.text = so.data.c;       
        delete so;//и все сохраняется, без этого нет

}
function e0() {
        var so:SharedObject = SharedObject.getLocal("n33", "/");
        txt.text += " "+so.data.c;
        delete so;
}
setTimeout(e0,8000);


iNils 27.07.2007 17:05

DarkLight, речь не об этом шла.
первый swf
Код:

var txt:TextField = this.createTextField ("txt", 0, 10, 10, 200, 20);
setInterval(this, "e", 100);
function e () {
        var so:SharedObject = SharedObject.getLocal ("n", "/");
        if (!so.data.cx) {
                so.data.cx = 0;
        }
        so.data.cx++;
        txt.text = so.data.cx;
        so.flush()
        delete so;
}

второй swf
Код:

var txt:TextField = this.createTextField ("txt", 0, 10, 10, 200, 20);
setInterval(this, "e", 100);
function e () {
        var so:SharedObject = SharedObject.getLocal ("n", "/");
        if (!so.data.cx) {
                so.data.cx = 0;
        }
        so.data.cx+=1000;
        txt.text = so.data.cx;
        so.flush()
        delete so;
}

а теперь запусти их одновременно, один будет только 1000 прибавлять, а другой 1.


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

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