Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Dokalan
 Аватар для Dokalan
6 / 6 / 1
Регистрация: 14.08.2015
Сообщений: 62
Записей в блоге: 5
#1

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

05.07.2016, 10:53. Просмотров 401. Ответов 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, в котором я создаю это приложение, а потом в браузере, всё работает отлично, и программа не выдаёт ошибок.
Но при их тестировании на телефоне. обнаружилось, что если первый игрок у себя изменяет видимость кнопки, то при повторном запуске приложения это изменение видит только он, а второй игрок его не видит.
В чём проблема? Подскажите, мне, пожалуйста!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.07.2016, 10:53     SWF: SharedObject не сохраняет состояние
Посмотрите здесь:

Разработка под Android. Состояние пункта в списке Android
Ошибка в eclipse при встраивании swf файла Android
Как сохранить состояние Service после перезагрузки телефона? Android
StartActivityForResult: не сохраняется предыдущее состояние activity Android
Как сохранить состояние хронометра при повороте экрана? Android
Android Оставить нажатое состояние кнопки при клике
Android Узнать состояние Wi-Fi
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nikto
 Аватар для Nikto
144 / 126 / 34
Регистрация: 28.11.2009
Сообщений: 368
Записей в блоге: 12
08.07.2016, 19:41     SWF: SharedObject не сохраняет состояние #2
Dokalan, вы можете скинуть код непосредственно относящийся к вашей проблеме? Как используете SharedObject, как у вас подгружается .swf, правильно ли тестировали этот .swf в браузере (т.е. все ли действия были аналогичны действиям в приложении adobe air на android)?
Dokalan
 Аватар для Dokalan
6 / 6 / 1
Регистрация: 14.08.2015
Сообщений: 62
Записей в блоге: 5
11.07.2016, 15:58  [ТС]     SWF: SharedObject не сохраняет состояние #3
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, в котором первый игрок сделал изменение, то есть изменил оффлайн на онлайн.
И получается, что если первый игрок закроет своё приложение, а потом вновь его откроет, то он видит картинку онлайн, а у остальных игроков так и остаётся оффлайн.
Nikto
 Аватар для Nikto
144 / 126 / 34
Регистрация: 28.11.2009
Сообщений: 368
Записей в блоге: 12
13.07.2016, 13:03     SWF: SharedObject не сохраняет состояние #4
Dokalan, точно не уверен, но по сути вызов getLocal подразумевает, что данные будут хранится локально на устройстве, которое подгрузило флешку. Тестирование в браузере и в эмуляторе проходило успешно видимо только потому, что тестировалось всё это на одном устройстве. Попробуйте вместо getLocal использовать getRemote. Если не выйдет, то нужно будет юзать сервер с php.
Dokalan
 Аватар для Dokalan
6 / 6 / 1
Регистрация: 14.08.2015
Сообщений: 62
Записей в блоге: 5
13.07.2016, 17:29  [ТС]     SWF: SharedObject не сохраняет состояние #5
Nikto,
Не получилось. Программа выдала ошибку:

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


Вы имеете в виду, что для подгружаемого swf нужно писать api ??
Nikto
 Аватар для Nikto
144 / 126 / 34
Регистрация: 28.11.2009
Сообщений: 368
Записей в блоге: 12
13.07.2016, 17:35     SWF: SharedObject не сохраняет состояние #6
Dokalan, видимо неправильно используете getRemote, но здесь уже подсказать не могу.
Вы имеете в виду, что для подгружаемого swf нужно писать api ??
Да.

А вообще зачем вам подгружать swf? Гораздо лучше переписать приложение, чтобы swf не приходилось скачивать, а сама swf уже была в коде. И при этом иметь сервер, на котором вы сможете сохранять различные данные.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.07.2016, 18:05     SWF: SharedObject не сохраняет состояние
Еще ссылки по теме:

Как создать массив который сохраняет свои значение даже после закрытия приложения Android
Android BroadcastReceiver, считывание состояние телефона
Android Восстановить состояние проекта после git reset
Получить состояние экрана (активно/заблокировано) Android
Android Как после окончания mp3 перевести ToggleButton в состояние выключено

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

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

Если теперь всё упёрлось в написание АПИ, то... У меня внутри всё аж похолодело! Я не умею его писать!
Yandex
Объявления
13.07.2016, 18:05     SWF: SharedObject не сохраняет состояние
Ответ Создать тему
Опции темы

Текущее время: 13:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru