Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Автообновление мувиклипа (http://www.flasher.ru/forum/showthread.php?t=211627)

Comer 04.10.2015 19:22

Автообновление мувиклипа
 
Уважаемые флеш-мастера! Подскажите, пожалуйста, можно ли сделать так, чтобы мувиклип (swf), находящийся на сервере (ну, например, на Ucoz) автоматически обновлялся через указанный мной промежуток времени, чтобы уже в обновленном виде мог подгружаться в другой swf-файл, который просматривает пользователь на своём компьютере, или телефоне? Я слышал о параметре FlashVars, но не умею им пользоваться.
Помогите мне, пожалуйста, добиться авто-обновления swf-файла!

undefined 04.10.2015 20:08

обновление swf на сервере никак не затронет те swf,что уже загружены у юзеров.Для обновления необходимо чтоб родительская флэшка периодически интересовалась у сервера не было ли обновления и если было - перегружать дочернюю swf.Flashvars тут особо не поможет.Как автоматически обновлять swf на стороне сервера - не подскажу.

Comer 04.10.2015 20:20

Цитата:

Сообщение от undefined (Сообщение 1187682)
Как автоматически обновлять swf на стороне сервера - не подскажу.

Ну, вот я тут попробовал это реализовать, но где-то есть ошибка. Найти бы её...
Код AS3:

function callServer(e:Event):void
  {
        var sharedObj:SharedObject = SharedObject.getLocal("frameSave");
  }
 
stage.addEventListener(Event.ENTER_FRAME, callServer);


caseyryan 04.10.2015 20:46

Цитата:

но где-то есть ошибка
Она тут не где-то а во всем коде в целом. Это вообще не имеет никакого отношения к серверу.
Да и даже с клиентской стороны этот код - полная бессмыслица

Цитата:

чтобы мувиклип (swf)
swf это не мувиклип, а бинарный файл флеш приложения

Comer 04.10.2015 20:56

Цитата:

Сообщение от caseyryan (Сообщение 1187687)
swf это не мувиклип, а бинарный файл флеш приложения

Ну, вот у меня есть код сохранения нужного кадра, чтобы при повторной загрузке ролик открылся именно на нём. Вот как мне сделать автоматическое обновление приложения, чтобы оно могло подгрузиться в другой swf открывшись именно на сохранённом кадре?
Код AS3:

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);
        }
}


caseyryan 04.10.2015 21:10

Этот код сохраняет SharedObject. Это флешевский аналог куки. Этот файлик сохраняется только на компе пользователя и к серверу ни коим образом отношения не имеет.
Цитата:

Вот как мне сделать автоматическое обновление приложения, чтобы оно могло подгрузиться в другой swf открывшись именно на сохранённом кадре?
Никак. Флеш не умеет ничего сохранять на сервере. Да и дело даже не в этом. Чтобы что-то обновлять на сервере, нужно обязательно иметь там программу, которая будет это делать. Естетсвенно эта программа должна быть написана на том языке, который может быть выполнен на этом сервере. Например PHP. Но берут меня большие сомнения по поводу того, что юкоз это позволяет
Цитата:

или телефоне?
На телефоне флеш работать не будет

Comer 04.10.2015 21:34

На телефоне есть файл AIR for Android. В него запросто подгружается swf, который находится на сервере. Вот если научиться это swf там обновлять, то на телефон он попадёт в обновленном виде.

caseyryan 04.10.2015 21:45

Как уже сказали выше, для этого флешка сама должна делать запрос к серверу на предмет наличия обновленного файла. Но для этого сервер должен уметь отвечать на эти запросы. Я вижу вариант решения таким: флешка первый раз грузит файл с сервера, сервер вместе с ним присылает ей версию этого файла (которую можно придумать самому), например 1.0. После загрузки она сохраняет эту версию у себя, например через SharedObject. Потом периодически опрашивает сервер, не изменилась ли у него версия. Если сервер присылает флешке номер версии отличный от того, что сохранен у нее, то она грузит swf заново
Ну а сам номер версии можно обновлять хоть вручную, например просто записав его в текстовый файл.

На сервере при этом можно вообще не хранить никаких специальных алгоритмов. Достаточно будет простого текстового файла где-то рядом с флешкой, например version.txt, в который руками и вносить новый номер версии при обновлении swf.
Флешка пошлет URLRequest к этому файлу, например по такому адресу http://example.com/version.txt, получит содержимое этого файла. Это и будет для нее сигналом к проверке

Comer 04.10.2015 21:55

Вот те поверишь! Только что нашёл просто шокирующее решение! Я взял, и поместил swf в html файл, где в мета тегах прописал
<meta http-equiv="Refresh" content="15" />,
и этот html загрузил на сервер. Страница с этим swf обновляется каждые 15 сек., соответственно и swf тоже. Проверяю на телефоне, как подгружается, и о чудо! РАБОТАЕТ !!!!

caseyryan 04.10.2015 21:57

Оо. Если страница будет каждые 15 секунд обновляться, то с этим swf будет невозможно работать


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

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