Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 14.08.2015, 16:11
Comer вне форума Посмотреть профиль Отправить личное сообщение для Comer Найти все сообщения от Comer
  № 1  
Ответить с цитированием
Comer

Регистрация: Dec 2010
Сообщений: 121
По умолчанию Как сохранить изменения?

Уважаемые флеш-мастера!
Очень прошу вас на моём конкретном примере разъяснить мне, как сохранить изменение в ролике.
Суть примера проста. На экране видна картинка 1. После нажатия на неё она скрывается, и открывается картинка 2.
Как сделать кнопку "Сохранить" так, чтобы при повторном открытии ролика сразу была видна картинка 2?
Какой код нужно прописать? И, по возможности, объясните мне, за что отвечает каждая его строчка.
Я всё никак не могу с этим разобраться. Помогите мне, пожалуйста!

Вот мой код переключения картинок:

Код AS3:
img1.addEventListener(MouseEvent.CLICK, fl_ClickToHide_2);
 
function fl_ClickToHide_2(event:MouseEvent):void
{
img1.visible = false;
img2.visible = true;
}
 
img2.addEventListener(MouseEvent.CLICK, f2_ClickToHide_2);
 
function f2_ClickToHide_2(event:MouseEvent):void
{
img1.visible = true;
img2.visible = false;
}
А здесь сам пример ролика:
http://intertraining.at.ua/flash_swf...khranenija.swf


Последний раз редактировалось udaaff; 14.08.2015 в 17:17.
Старый 14.08.2015, 19:40
Bletraut вне форума Посмотреть профиль Отправить личное сообщение для Bletraut Найти все сообщения от Bletraut
  № 2  
Ответить с цитированием
Bletraut
 
Аватар для Bletraut

Регистрация: Mar 2013
Адрес: Вне пространства.
Сообщений: 567
Отправить сообщение для Bletraut с помощью ICQ Отправить сообщение для Bletraut с помощью Skype™
SharedObject. Ищите в поисковиках как использовать.
__________________
Я заклинаю вас действовать иначе.

Старый 14.08.2015, 19:55
tattori вне форума Посмотреть профиль Отправить личное сообщение для tattori Найти все сообщения от tattori
  № 3  
Ответить с цитированием
tattori

Регистрация: Jul 2015
Сообщений: 73
с помощью SharedObject создаешь файл для сохранения и сохраняешь значения туда потом берешь от туда нужные, вот дополнение для твоего кода
Код AS3:
var saveFile:SharedObject = SharedObject.getLocal("saveFile");/* создаем переменную для сохранения и даем имя файлику куда это все будет сохраняться */
 
if(saveFile.data.num_Img == null)// если ячейка сохранения с именем num_Img пуста, то показать img1
{
	img1.visible = true;
        img2.visible = false;
}
else if(saveFile.data.num_Img == "img1")// если ячейка сохранения с именем num_Img равна "img1", то показать img1
{
	img1.visible = true;
    img2.visible = false;
}
else// в противном случае показать img2
{
	img1.visible = false;
    img2.visible = true;
}
 
img1.addEventListener(MouseEvent.CLICK, fl_ClickToHide_2);
 
function fl_ClickToHide_2(event:MouseEvent):void
{
saveFile.data.num_Img = "img2";// значение ячейки с именем num_Img равно "img2"
img1.visible = false;
img2.visible = true;
}
 
img2.addEventListener(MouseEvent.CLICK, f2_ClickToHide_2);
 
function f2_ClickToHide_2(event:MouseEvent):void
{
saveFile.data.num_Img = "img1";// значение ячейки с именем num_Img равно "img1"
img1.visible = true;
img2.visible = false;
}

Старый 14.08.2015, 20:08
Comer вне форума Посмотреть профиль Отправить личное сообщение для Comer Найти все сообщения от Comer
  № 4  
Ответить с цитированием
Comer

Регистрация: Dec 2010
Сообщений: 121
Цитата:
Сообщение от tattori Посмотреть сообщение
с помощью SharedObject создаешь файл для сохранения и сохраняешь значения туда потом берешь от туда нужные, вот дополнение для твоего кода
Вы даже не представляете КАК сильно мне помогли! Да, это именно то, что нужно. Огромное Вам спасибо!

Старый 14.08.2015, 21:54
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 5  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
уже давно не пользовался шерд обджектами, но если мне память не изменяет, то не запишет он никакие данные простым присвоением. Надо после всех этих манипуляций дернуть еще метод flush()

Старый 14.08.2015, 22:14
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 6  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Цитата:
Сообщение от caseyryan Посмотреть сообщение
уже давно не пользовался шерд обджектами, но если мне память не изменяет, то не запишет он никакие данные простым присвоением. Надо после всех этих манипуляций дернуть еще метод flush()
Запишет по окончании работы приложения. Без необходимости его лучше не дергать.
http://help.adobe.com/ru_RU/FlashPla...ml#flush%28%29

Старый 15.08.2015, 09:12
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 7  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Запишет по окончании работы приложения. Без необходимости его лучше не дергать.
Тогда получается, что если у меня в одном месте будет SharedObject.getLocal(...) то он вернет то, что хранится на жестком диске. Потом я запишу туда какие-то данные и не дерну flush(), то если в другом месте тоже будет SharedObject.getLocal(...) он вернет старую версию файла с жесткого диска. А это не есть гуд. flush() все такие лучше дергать, чтобы таких конфузов избежать

Старый 15.08.2015, 19:07
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 8  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Цитата:
Сообщение от caseyryan Посмотреть сообщение
Тогда получается, что если у меня в одном месте будет SharedObject.getLocal(...) то он вернет то, что хранится на жестком диске. Потом я запишу туда какие-то данные и не дерну flush(), то если в другом месте тоже будет SharedObject.getLocal(...) он вернет старую версию файла с жесткого диска. А это не есть гуд. flush() все такие лучше дергать, чтобы таких конфузов избежать
С таким подходом, да, придется. Но логичнее получить 1 инстанс so и с ним работать. flush() выполняется синхронно и на запись данных тратится ощутимое время.

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

Старый 15.08.2015, 15:57
tattori вне форума Посмотреть профиль Отправить личное сообщение для tattori Найти все сообщения от tattori
  № 9  
Ответить с цитированием
tattori

Регистрация: Jul 2015
Сообщений: 73
данные с шаредобджект я дергаю только в самом начале и присваиваю их значения переменным и манипулирую этими переменными и сохраняю те данные которые нужны будут при следующей загрузке, еще никогда flush() использовать не приходилось, а конкретно в этом примере и переменные не flush() не нужны но хорошо что сказал Comer должен знать и о flush()

Старый 15.08.2015, 18:03
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 10  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
данные с шаредобджект я дергаю только в самом начале и присваиваю их значения переменным и манипулирую этими переменными и сохраняю те данные которые нужны будут при следующей загрузке, еще никогда flush()
Все зависит от целей и задач. Допустим делаешь ты интерфейс, в котором можно перемещать разные окошки и раствлять их как удобно пользователю. Тут уже никак не обойдешься вызовом в самом начале. Нодо, чтобы он запоминал положения окон? потому что на корректное завершение приложения надеяться глупо. Есть куча причин, по которым может не произойти корректное закрытие swf.
Вот я не вижу лично каких то объективных причин, чтобы не использовать flush()

Создать новую тему Ответ Часовой пояс GMT +4, время: 17:18.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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