Форум 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=89058)

AlexAxe 06.12.2006 20:39

проигрывание ролика один раз. Как сделать?
 
Здравствуйте, нужна Ваша помощь. Суть в том, что есть шапка сайта в виде клипа на flash, под шапкой кнопки.


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


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

artcraft 06.12.2006 20:47

надо почитать в хелпе про SharedObject

N!kE 06.12.2006 20:55

может использовать onLoad ?

AlexAxe 06.12.2006 21:05

Я не знаю, что использовать. Я чайник в этом деле, щас стоит goto and stop

artcraft 06.12.2006 21:23

как я понял, шапка с меню висит на каждой хтмл странице сайта
и надо играть в ней анимацию только один раз

кроме SharedObject для этого можно еще передавать флэшке параметр (через swfObject напирмер) вроде page="home" и во флэшке проверять его значение, если home то проигрывать анимацию, если нет - gotoAndStop

но в этом случае анимация будет проигрываться при каждом возвращении на главную

поэтому рекомендую остановиться на SharedObject (это аналог кукисов)

AlexAxe 11.01.2007 14:16

Сколько будет стоить сделать эти кукисы т.к сам я не умею?

И ещё вопрос, у меня есть кнопки во флэше, делал в проге. При наведении на кнопку пишет (нажмите, чтобы активизировать объект). Приходится 2 раза кликать, а это неудобно. Можно этот как-нибудь решить?

N!kE 11.01.2007 14:51

button.onPress ?

Kikasso 11.01.2007 15:56

Цитата:

Сообщение от AlexAxe
Сколько будет стоить сделать эти кукисы т.к сам я не умею?

И ещё вопрос, у меня есть кнопки во флэше, делал в проге. При наведении на кнопку пишет (нажмите, чтобы активизировать объект). Приходится 2 раза кликать, а это неудобно. Можно этот как-нибудь решить?

кукисы:
Код:

var so = SharedObject.getLocal("kokie");
if( !so.data.played ){
so.data.played = true;
play();
}else{
stop();
}

второй вопрос - swfobject и поиск по форуму

AlexAxe 11.01.2007 23:03

ламерский вопрос. А куда эти кукисы вставлять?

Второй пункт вообще не понял. Прочитал все ветки и ничего из предложенного у меня не заработало. Читал также доки на майкрософте и адобе:(

Kikasso 12.01.2007 10:50

Этот код в первый кадр флешки. SharedObject находится в хелпе флеша.
Будет играть только один раз вообще, так что лучше наверное поступить так:
Код:

var updTime = 3600*1000;// ставим час на обновление
var ms = (new Date()).getTime(); //текущее время
var so = SharedObject.getLocal('kookie');
var lastPlayed= so.data.lastPlayed || 0; //когда играло в последний раз
if( ms - lastPlayed > updTime ){// час прошел с последнего визита
 so.data.lastPlayed = ms;
 play();
}else{
 stop();
}

второй пункт здесь: http://blog.deconcept.com/swfobject/

chingachgoog 12.01.2007 11:56

Цитата:

Сообщение от artcraft

поэтому рекомендую остановиться на SharedObject (это аналог кукисов)

Есть много минусов.
1)При ряде настроек безопасности браузер не будет отображать флешку пока пользователь прямо это не разрешит.
2)При повторном возрате на сайт после путешествия по другим сайтам пользователь увидит флешку в положении последнего посещения а страничку - по заданному URL

chingachgoog 12.01.2007 12:00

см. еще тут
http://www.flasher.ru/forum/showthread.php?t=90365

AlexAxe 15.01.2007 16:17

Цитата:

Сообщение от Kikasso
Этот код в первый кадр флешки. SharedObject находится в хелпе флеша.
Будет играть только один раз вообще, так что лучше наверное поступить так:
Код:

var updTime = 3600*1000;// ставим час на обновление
var ms = (new Date()).getTime(); //текущее время
var so = SharedObject.getLocal('kookie');
var lastPlayed= so.data.lastPlayed || 0; //когда играло в последний раз
if( ms - lastPlayed > updTime ){// час прошел с последнего визита
 so.data.lastPlayed = ms;
 play();
}else{
 stop();
}


Вставил код, Зацикливается первый кадр и всё. Один раз смотрю нормально всю флэшку, но зацикливается последний кадр. Нажимаю на кнопку меню - зацикливается первый кадр

Kikasso 15.01.2007 17:05

Давайте ваш исходник, ковырнем чтоли.
попробуйте еще в первом кадре
Код:

stop();
добавить.

AlexAxe 16.01.2007 17:16

<a href=http://www.rabotawm.jino-net.ru/test6.rar>Вот сам файл </a>
http://www.rabotawm.jino-net.ru/test6.rar
http://www.rabotawm.jino-net.ru/test6.fla файл fla 3мегабайта

Вложить не смог т.к размер больше 97кб

CorC 16.01.2007 17:56

еще попробуйте поиск посмотреть месяц назад в 1 жень аж 2 темы такие всплыли...
там все проще, и без SharedObjects

Gosha_master 16.01.2007 18:29

Я понимаю, мое предложение глупое, но раз ты не силен в кодах, может просто сделаешь 2 флешки - одну на главную страницу, другую на остальные, а все мувики пусть она подгружает из первой флешки....

Kikasso 17.01.2007 00:22

Ага. Текст у вас в мувиклипах, стало быть анимация идет независимо от основного таймлайна, разумеется она играет. Делаем на верхнем слое первый кадр пустым, туда вот это:
Код:

stop();
var updTime = 60*60*1000;// ставим час на обновление
var ms = (new Date()).getTime(); //текущее время
var so = SharedObject.getLocal('kookie');
var lastPlayed= so.data.lastPlayed || 0; //когда играло в последний раз
if( ms - lastPlayed > updTime ){// час прошел с последнего визита
 so.data.lastPlayed = ms;
 play();
}

И все. Расчет на то, что с этого компа в течение часа никто на сайт не полезет. Через час, если на этот сайт зайти с этого компа, анимация снова проиграется. Чтобы протестировать, поставьте updTime = 60*1000 (минута)
проверено, работает.

AlexAxe 17.01.2007 13:52

Цитата:

Сообщение от Kikasso
Ага. Текст у вас в мувиклипах, стало быть анимация идет независимо от основного таймлайна, разумеется она играет. Делаем на верхнем слое первый кадр пустым, туда вот это:
Код:

stop();
var updTime = 60*60*1000;// ставим час на обновление
var ms = (new Date()).getTime(); //текущее время
var so = SharedObject.getLocal('kookie');
var lastPlayed= so.data.lastPlayed || 0; //когда играло в последний раз
if( ms - lastPlayed > updTime ){// час прошел с последнего визита
 so.data.lastPlayed = ms;
 play();
}

И все. Расчет на то, что с этого компа в течение часа никто на сайт не полезет. Через час, если на этот сайт зайти с этого компа, анимация снова проиграется. Чтобы протестировать, поставьте updTime = 60*1000 (минута)
проверено, работает.

Всё работает. Только после просмотра - пустой фон без текста. А как сделать, чтобы отображался последний текстовый ролик и зацикливался?

Kikasso 17.01.2007 14:32

Цитата:

Сообщение от AlexAxe
А как сделать, чтобы отображался последний текстовый ролик и зацикливался?

Не поверите, поставить
Код:

stop();
в последнем ключевом кадре!
В вашем случае это 381 кадр, если там ничего не менялось.
Или создайте отдельный слой для кода.

Кстати, tween с нижнего слоя вполне можно убрать - там вроде ничего не меняется.

AlexAxe 17.01.2007 15:31

Сделал. После проигрывания зацикливается последний кадр, но при нажатии на кнопку меню, зацикливается первый и уже играет только первый кадр при нажатии на любую кнопку меню

Kikasso 17.01.2007 19:09

Я в том исходнике меню не видел. Какой код на кнопках? Чего вы хотите добиться?

Termin 17.01.2007 22:23

Чтото бодобное было у меня, с шапкой, только у мя заказчик попросил шапку с музыкой и при каждой нажатии ссылки, музыка игралось заново, вобщем вы понимаете. Дело может быть не во влэшке а в языке сайта. Я так понял что шапка Флэшевскоя а сайт сделан в php или в другом тэговом языке. если сайт на Html то шапку стоит сделать тэговую. Если же сайт более серьёзный (с базами данных и т.д. и т.п.) типа MySQL то стоит там подностроить. Просто если шапка находиться в разделённой таблице, то просто при нажатии ссылки загружаеться всё я думаю принцип вы знаете...
Других путей я не знаю рад был помоч хоть этим.
Если вы найдёте путь через влэш, то для меня это будит хорошим опытом, Я вертуально пожму вам руки)))...

Kikasso 17.01.2007 23:36

Поверьте, для броузера безразлично на чем сделан сайт. Броузер отправляет запрос, сервер выдает ответ в виде html, броузер его показывает.
Вы имеете в виду, что меню на веб-странице, а не во флеше? Об этом я кстати не подумал. В этом случае поступаем так:
Код:

var updTime = 3600*1000;// ставим час на обновление
var ms = (new Date()).getTime(); //текущее время
var so = SharedObject.getLocal('kookie');
var lastPlayed= so.data.lastPlayed || 0; //когда играло в последний раз
 so.data.lastPlayed = ms; // поставим текущее время

if( ms - lastPlayed > updTime ){// час прошел с последнего визита
 play();
}else{
 gotoAndStop(381);//номер кадра, в котором надо остановиться в том исходнике
}


CheSanches 21.05.2011 18:43

Здравствуйте, у меня аналогичная проблема, первый раз имею дело с флешом и экшен-скриптом, за основу брал готовое меню, а там уйма непонятного мне кода, ну так вот — Ваш код мне частично помог, но осталась уйма проблем: меню вставляется на каждую страницу сайта (<object> во все *.php) по этому при переходе по станицам флеш проигрывается каждый раз, и не проигрываться только при повторном посещении страницы, хотелось бы что бы проигрывалась только на главной при первом посещении, при том ещё хочется что бы при нажатии на специально обученную кнопку куки удалялись и воспроизведение начиналось снова, типо

if( (ms - lastPlayed > updTime) || (home_btn.onRelease) )

или как то так — я синтексиса не знаю :-(

и else{ stop();} не работает почему-то, только gotoAndPlay, но к нужному кадру не переходит — судя по всему нужный кадр находится внутри символа, можно ли gotoAndPlay-ем обратиться к кадру внутри символа?


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

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