|
|
|||||
Регистрация: Dec 2010
Сообщений: 121
|
Автообновление мувиклипа
Уважаемые флеш-мастера! Подскажите, пожалуйста, можно ли сделать так, чтобы мувиклип (swf), находящийся на сервере (ну, например, на Ucoz) автоматически обновлялся через указанный мной промежуток времени, чтобы уже в обновленном виде мог подгружаться в другой swf-файл, который просматривает пользователь на своём компьютере, или телефоне? Я слышал о параметре FlashVars, но не умею им пользоваться.
Помогите мне, пожалуйста, добиться авто-обновления swf-файла! |
|
|||||
Регистрация: Oct 2006
Сообщений: 2,281
|
обновление swf на сервере никак не затронет те swf,что уже загружены у юзеров.Для обновления необходимо чтоб родительская флэшка периодически интересовалась у сервера не было ли обновления и если было - перегружать дочернюю swf.Flashvars тут особо не поможет.Как автоматически обновлять swf на стороне сервера - не подскажу.
|
|
|||||
Регистрация: Dec 2010
Сообщений: 121
|
Ну, вот я тут попробовал это реализовать, но где-то есть ошибка. Найти бы её...
|
|
|||||
Цитата:
Да и даже с клиентской стороны этот код - полная бессмыслица Цитата:
|
|
|||||
Регистрация: Dec 2010
Сообщений: 121
|
Ну, вот у меня есть код сохранения нужного кадра, чтобы при повторной загрузке ролик открылся именно на нём. Вот как мне сделать автоматическое обновление приложения, чтобы оно могло подгрузиться в другой swf открывшись именно на сохранённом кадре?
import flash.net.SharedObject; import flash.events.MouseEvent; import flash.display.MovieClip; stop(); var sharedObj:SharedObject = SharedObject.getLocal("frameSave"); prev_mc.addEventListener(MouseEvent.CLICK, prev_click); next_mc.addEventListener(MouseEvent.CLICK, next_click); save_mc.addEventListener(MouseEvent.CLICK, save_click); load_mc.addEventListener(MouseEvent.CLICK, load_click); function prev_click(e:MouseEvent):void { (root as MovieClip).prevFrame(); } function next_click(e:MouseEvent):void { (root as MovieClip).nextFrame(); } function save_click(e:MouseEvent):void { sharedObj.data.frameNum = (root as MovieClip).currentFrame; trace("Сохранён кадр", sharedObj.data.frameNum ); } function load_click(e:MouseEvent):void { var frame:Number = sharedObj.data.frameNum; if(frame) { (root as MovieClip).gotoAndStop(frame); trace("Загружен кадр", frame); } } |
|
|||||
Этот код сохраняет SharedObject. Это флешевский аналог куки. Этот файлик сохраняется только на компе пользователя и к серверу ни коим образом отношения не имеет.
Цитата:
Цитата:
|
|
|||||
Регистрация: Dec 2010
Сообщений: 121
|
На телефоне есть файл AIR for Android. В него запросто подгружается swf, который находится на сервере. Вот если научиться это swf там обновлять, то на телефон он попадёт в обновленном виде.
|
|
|||||
Как уже сказали выше, для этого флешка сама должна делать запрос к серверу на предмет наличия обновленного файла. Но для этого сервер должен уметь отвечать на эти запросы. Я вижу вариант решения таким: флешка первый раз грузит файл с сервера, сервер вместе с ним присылает ей версию этого файла (которую можно придумать самому), например 1.0. После загрузки она сохраняет эту версию у себя, например через SharedObject. Потом периодически опрашивает сервер, не изменилась ли у него версия. Если сервер присылает флешке номер версии отличный от того, что сохранен у нее, то она грузит swf заново
Ну а сам номер версии можно обновлять хоть вручную, например просто записав его в текстовый файл. На сервере при этом можно вообще не хранить никаких специальных алгоритмов. Достаточно будет простого текстового файла где-то рядом с флешкой, например version.txt, в который руками и вносить новый номер версии при обновлении swf. Флешка пошлет URLRequest к этому файлу, например по такому адресу http://example.com/version.txt, получит содержимое этого файла. Это и будет для нее сигналом к проверке |
|
|||||
Регистрация: Dec 2010
Сообщений: 121
|
Вот те поверишь! Только что нашёл просто шокирующее решение! Я взял, и поместил swf в html файл, где в мета тегах прописал
<meta http-equiv="Refresh" content="15" />, и этот html загрузил на сервер. Страница с этим swf обновляется каждые 15 сек., соответственно и swf тоже. Проверяю на телефоне, как подгружается, и о чудо! РАБОТАЕТ !!!! |
Часовой пояс GMT +4, время: 20:13. |
|
« Предыдущая тема | Следующая тема » |
|
|