Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
 Аватар для Dokalan
6 / 6 / 0
Регистрация: 14.08.2015
Сообщений: 69
Записей в блоге: 5

SWF: SharedObject не сохраняет состояние

05.07.2016, 10:53. Показов 883. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Друзья! Помогите, пожалуйста, справиться с проблемой!
Сделал мобильное приложение для нескольких игроков.
Назначение: AIR 20.0 for Android
Сценарий: ActionScript 3.0
У каждого игрока свой персональный файл игры, но их содержимое абсолютно идентично.
На сервер загрузил swf-файл, который подгружается в мобильное приложение каждого игрока.
Особенность этого swf заключается в том, что в его коде использован метод SharedObject. Если подробнее, то там есть кнопка on/off. По умолчанию открывается кнопка offline. После клика на неё появляется кнопка online.
Метод SharedObject сохраняет это изменение кнопки, и при повторном запуске приложения открывается уже не offline, а online. То есть, если первый игрок на своём приложении изменит offline на online, и закроет своё приложение, то второй игрок, запустив свой экземпляр приложения видит это изменение кнопки.
При тестировании работы файлов игроков сначала на штатном эмуляторе Adobe Animate CC 2015, в котором я создаю это приложение, а потом в браузере, всё работает отлично, и программа не выдаёт ошибок.
Но при их тестировании на телефоне. обнаружилось, что если первый игрок у себя изменяет видимость кнопки, то при повторном запуске приложения это изменение видит только он, а второй игрок его не видит.
В чём проблема? Подскажите, мне, пожалуйста!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.07.2016, 10:53
Ответы с готовыми решениями:

Сохраняет состояние не всех чекбоксов
есть 2 столпца по 13 чекбоксов. сделал чтоб при отправке формы сохранялось их состояние (отмечен/не отмечен). 10 первых сохраняет отлично,...

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

Почему сформированный текстовый документ не сохраняет свое состояние
почему сформированный текстовый документ не сохраняет свое состояние после того как я его отправил по почте на другой комп а при открытии...

6
 Аватар для Nikto
156 / 138 / 51
Регистрация: 28.11.2009
Сообщений: 460
Записей в блоге: 14
08.07.2016, 19:41
Dokalan, вы можете скинуть код непосредственно относящийся к вашей проблеме? Как используете SharedObject, как у вас подгружается .swf, правильно ли тестировали этот .swf в браузере (т.е. все ли действия были аналогичны действиям в приложении adobe air на android)?
0
 Аватар для Dokalan
6 / 6 / 0
Регистрация: 14.08.2015
Сообщений: 69
Записей в блоге: 5
11.07.2016, 15:58  [ТС]
Nikto, Вот код swf-файла, который подгружается:
ActionScript 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
var saveFile:SharedObject = SharedObject.getLocal("saveFile");
 
if(saveFile.data.num_Img == null)
{
    offline.visible = true;
    online.visible = false;
}
else if(saveFile.data.num_Img == "img1")
{
    offline.visible = true;
    online.visible = false;
}
else
{
    offline.visible = false;
    online.visible = true;
}
 
offline.addEventListener(MouseEvent.MOUSE_DOWN, fl_ClickToHide_2);
 
function fl_ClickToHide_2(event:MouseEvent):void
{
saveFile.data.num_Img = "img2";
    offline.visible = false;
    online.visible = true;
}
 
online.addEventListener(MouseEvent.MOUSE_DOWN, f2_ClickToHide_2);
 
function f2_ClickToHide_2(event:MouseEvent):void
{
saveFile.data.num_Img = "img1";
    offline.visible = true;
    online.visible = false;
}
=======
Вот так он подгружается в приложение:
ActionScript 3
1
2
3
fl_ProLoader = new ProLoader();
        fl_ProLoader.load(new URLRequest("http://здесь адрес этого swf на хостинге.swf"));
        addChild(fl_ProLoader);
==========
Тестировал в штатном эмуляторе Adobe Animate CC 2015, а потом в браузере. Всё отлично работает, а в телефоне не хочет.
Вернее, в телефоне тоже работает, но при условии, что доступ к подгружаемому swf осуществляется только с того аппарата, с которого он был запущен. То есть сохранённое изменение видит только тот владелец телефона, который нажал на кнопку, и изменил оффлайн на онлайн, и наоборот. Другие пользователи со своих телефонов этих изменений не видят, хотя в их приложения подгружается тот же swf, в котором первый игрок сделал изменение, то есть изменил оффлайн на онлайн.
И получается, что если первый игрок закроет своё приложение, а потом вновь его откроет, то он видит картинку онлайн, а у остальных игроков так и остаётся оффлайн.
0
 Аватар для Nikto
156 / 138 / 51
Регистрация: 28.11.2009
Сообщений: 460
Записей в блоге: 14
13.07.2016, 13:03
Dokalan, точно не уверен, но по сути вызов getLocal подразумевает, что данные будут хранится локально на устройстве, которое подгрузило флешку. Тестирование в браузере и в эмуляторе проходило успешно видимо только потому, что тестировалось всё это на одном устройстве. Попробуйте вместо getLocal использовать getRemote. Если не выйдет, то нужно будет юзать сервер с php.
0
 Аватар для Dokalan
6 / 6 / 0
Регистрация: 14.08.2015
Сообщений: 69
Записей в блоге: 5
13.07.2016, 17:29  [ТС]
Nikto,
Не получилось. Программа выдала ошибку:

Error: Error #2134: Cannot create SharedObject.
at flash.net::SharedObject$/getRemote()


Вы имеете в виду, что для подгружаемого swf нужно писать api ??
0
 Аватар для Nikto
156 / 138 / 51
Регистрация: 28.11.2009
Сообщений: 460
Записей в блоге: 14
13.07.2016, 17:35
Dokalan, видимо неправильно используете getRemote, но здесь уже подсказать не могу.
Вы имеете в виду, что для подгружаемого swf нужно писать api ??
Да.

А вообще зачем вам подгружать swf? Гораздо лучше переписать приложение, чтобы swf не приходилось скачивать, а сама swf уже была в коде. И при этом иметь сервер, на котором вы сможете сохранять различные данные.
0
 Аватар для Dokalan
6 / 6 / 0
Регистрация: 14.08.2015
Сообщений: 69
Записей в блоге: 5
13.07.2016, 18:05  [ТС]
Nikto, Тот swf, который я показываю вам в качестве примера - это кнопка on/off, которая есть у каждого игрока. Она может находиться под управлением только того, кто ею владеет. А остальные игроки, подгружая её в своё приложение должны только лишь видеть статус этого игрока, которым он и управляет. Другого способа, кроме как подгружать статус в персональное приложение каждого игрока, я не знаю.

Если теперь всё упёрлось в написание АПИ, то... У меня внутри всё аж похолодело! Я не умею его писать!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.07.2016, 18:05
Помогаю со студенческими работами здесь

Каким образом из загруженного swf передать команду прелоадеру на загрузку другого swf?
День добрый. Есть внешний прелоадер, который загружает swf файлы содержащие разные уровни игры. В самом начала игры прелоадер загружает...

Магнитола не сохраняет последний воспроизведённый файл (с флешки), а позицию сохраняет
Во общем в машине есть магнитола JVC, в ней есть CD диск, USB flash накопитель и радио... Так вот: если на флешке будет играть музыка то...

SWF внутри SWF + передача данных в JS
Здравствуйте, уважаемые форумчане! Если вы не против, перейду сразу к сути: Сам я, к сожалению, флэшем не владею. Есть следующие...

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

Сохранение объектов SharedObject на телефоне
Здравствуйте. Пытаюсь добиться сохранения настроек альтернативной флеш-оболочки телефона. Для примера, вставляю в код для записи ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru