AS3 Shared Object замедляет swf и делает веб-страницу неактивной - PullRequest
0 голосов
/ 25 февраля 2011

У меня есть SWF-файл, который я хотел бы сохранить, чтобы контролировать фрейм, который видит пользователь, в зависимости от того, будет ли это первый визит на сайт или повторный визит.Мой код ниже - он работает, он не возвращает никаких сообщений, однако, когда я загружаю SWF на свой сайт, который использует эту технику, страница становится чрезвычайно медленной и не отвечает - может кто-нибудь помочь с любыми причинами, почему это может произойти?

var my_so:SharedObject = SharedObject.getLocal("visited", "/");

if (my_so.data.newVisitor != undefined) {
//object exists: return user
this.gotoAndPlay(2);


} else {
//object doesn't exist: new user
my_so.data.newVisitor = "no";
this.gotoAndStop(1);
} 

Большое спасибо заранее Рэйчел

1 Ответ

1 голос
/ 07 марта 2011

SharedObjects вообще очень медленно во Flash. При этом нет никаких причин, по которым он должен замедлять весь ваш сайт после его использования.

При записи в SO вы должны использовать flush (), чтобы указать Flash фактически записывать данные.

my_so.data.newVisitor = "no";
// Write the data to disk
my_so.flush();

Другая вещь, которую стоит попробовать, - это активно закрывать соединение после того, как с ним покончено. Поэтому после оператора else вы добавите:

// Close the connection
my_so.close();
// Clear pointer for GC
my_so = null;

Если это не сработает, следующие шаги будут заключаться в размещении операторов трассировки в SO и вокруг SO и проверке того, что они не доступны во время работы программы.

...