PDA

Просмотр полной версии : Запретить проигрывание ролика при перезагрузке стр


mihailhouse
03.07.2006, 19:12
Что нужно:
Имеем флеш в шапке сайта, ролик совмещен с меню.
Как делать так, чтобы при первом вхоже человека на сайт ролик проигрывался целиком, а при последующих переходах по страницам - переходил бы сразу к последнему кадру?

Варианты №1; №2; №3 - не работают...

Вариант №1


onClipEvent (load) {
total = _root.getBytesTotal();
}
onClipEvent (enterFrame) {
loaded = _root.getBytesLoaded();
percent = int(loaded/total*100);
text = percent+"%";
gotoAndStop(percent);
if (loaded == total)
{

this.onData = function()
{
var my_so:SharedObject = SharedObject.getLocal("local_visit");
if (my_so.data.visited != undefined)
{
_root.gotoAndPlay(120);
}else
{
my_so.data.visited = undefined;
my_so.flush();
_root.gotoAndPlay(2);
}
}
stop();

}
}



Вариант №2



onClipEvent (load) {
var checkUnical:SharedObject = SharedObject.getLocal("ap");
total = _root.getBytesTotal();
}
onClipEvent (enterFrame) {
loaded = _root.getBytesLoaded();
percent = int(loaded/total*100);
text = percent+"%";
gotoAndStop(percent);

if (loaded == total)
{
if (checkUnical.data.id = "1")
{
_root.gotoAndPlay(120);
}

if (checkUnical.data.id != "1")
{
checkUnical.data.id = "1";
_root.gotoAndPlay(2);
}

}
}



Вариант №3


onClipEvent (load) {
total = _root.getBytesTotal();
}
onClipEvent (enterFrame) {
loaded = _root.getBytesLoaded();
percent = int(loaded/total*100);
text = percent+"%";
gotoAndStop(percent);
if (loaded == total)
{
if (checkUnical.data.id != "1")
{
checkUnical.data.id = "1";
_root.gotoAndPlay(2);
}
else
{
_root.gotoAndPlay(120);
}
}
}



//---------------------------------------------------

Вот кто-то давал пример (на основе своей Flash_ki)-

this.onData = function()
{
var my_so:SharedObject = SharedObject.getLocal("local_visit");
if (my_so.data.visited != undefined)
{
_root.gotoAndPlay(3);
}else
{
my_so.data.visited = undefined;
my_so.flush();
_root.gotoAndPlay(2);
}
}
stop();



Он работает (если отдельно запускать), но если я его вставляю в свой код (вариант №1), - не работает!

Помогите кто знает пожалуйста!

С уважением, Михаил

MINASTIS
03.07.2006, 19:21
Я ничего не понял из вариантов. и не надо "вшивать" код локального объекта в загрузчик! Вставь в чистый кадр после. Там во второй или еще как. Короче вот код:

base = SharedObject.getLocal("database");
base.data.visited++;
if (base.data.visited>1) {
gotoAndPlay(кадр_на_который_перейти_после_первого_посещения);
}
Безоткатный метод.

mihailhouse
03.07.2006, 19:37
такой вариант не работает!!!
(при обновлении страницы - начинает проигрывать все заново)

p.s.
вставил код во 2-й кадр

MINASTIS
03.07.2006, 19:42
Странно. Попробуй проверить у тебя в браущере coockies включено (или это не связано с этим...). Все же проверь. И еще проверь в сеттингсах флешролика сколько памяти доступно для локальных данных. Правая кнопка- сеттингс.

mihailhouse
03.07.2006, 19:45
1) Все проверил - нормально....
2) Сам ролик весит - 250 kb
3) Версия Flasha - Flash Professional 8

C уважением, Михаил

p.s.

Я поправил - SharedObject

Но все равно при обновлении страницы - ролик начинает играть заново...

Kinsler
04.07.2006, 11:48
при публикации ставил - Only network ?

mihailhouse
05.07.2006, 14:57
"Only network" - а нужно это дело ставить?

Kinsler
06.07.2006, 11:47
у меня без этого не работало...