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

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

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

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

Уважаемые флеш-мастера! Очень нуждаюсь в вашей помощи! Я перелопатил массу литературы, убил кучу времени, но наконец написал код приложения, который сейчас отлично работает. Единственное, чего я так и не смог добиться, так это того, чтобы после сохранения нужного кадра при повторном открытии оно открывалось бы не на первом кадре как сейчас, а на сохранённом. У меня уже шарики за ролики закатываются. Видимо, последствия моего "мозгового штурма". Вот код, в котором нужно это прописать. Помогите мне, пожалуйста!

Код 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);
	}
}

Старый 13.09.2015, 21:37
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 2  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,283
попробуй дописать
Код AS3:
sharedObj.flush();
после
Код AS3:
sharedObj.data.frameNum = (root as MovieClip).currentFrame;

Старый 13.09.2015, 21:48
Comer вне форума Посмотреть профиль Отправить личное сообщение для Comer Найти все сообщения от Comer
  № 3  
Ответить с цитированием
Comer

Регистрация: Dec 2010
Сообщений: 121
Цитата:
Сообщение от undefined Посмотреть сообщение
попробуй дописать
Код AS3:
sharedObj.flush();
после
Код AS3:
sharedObj.data.frameNum = (root as MovieClip).currentFrame;

Попробовал. Не сработало. Опять открылся на первом кадре.

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Там не Number надо тип, а uint

Старый 13.09.2015, 23:24
Comer вне форума Посмотреть профиль Отправить личное сообщение для Comer Найти все сообщения от Comer
  № 5  
Ответить с цитированием
Comer

Регистрация: Dec 2010
Сообщений: 121
Цитата:
Сообщение от caseyryan Посмотреть сообщение
Там не Number надо тип, а uint

Попробовал вставить uint. Та же фигня. Открывается на первом кадре.


Последний раз редактировалось Comer; 13.09.2015 в 23:37.
Старый 13.09.2015, 23:53
AlexCooper вне форума Посмотреть профиль Отправить личное сообщение для AlexCooper Найти все сообщения от AlexCooper
  № 6  
Ответить с цитированием
AlexCooper
 
Аватар для AlexCooper

Регистрация: Sep 2008
Адрес: Черкассы
Сообщений: 1,167
Записей в блоге: 1
Отправить сообщение для AlexCooper с помощью ICQ Отправить сообщение для AlexCooper с помощью Skype™
Цитата:
Сообщение от Comer Посмотреть сообщение
Попробовал вставить uint. Та же фигня. Открывается на первом кадре.
Трейс выводит? Т.е. из шаредов номер кадра получаете?
__________________
return this...

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

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Попробуйте после строчки
Код AS3:
var sharedObj:SharedObject = SharedObject.getLocal("frameSave");
вызвать метод загрузки вручную, вот так
Код AS3:
load_click(null);
Но есть сомнения что переход на нужный кадр не произойдёт, как как он мог ещё просто не загрузиться.
Значит нужно сделать какой-то прелоадер.

Старый 15.09.2015, 09:29
Comer вне форума Посмотреть профиль Отправить личное сообщение для Comer Найти все сообщения от Comer
  № 8  
Ответить с цитированием
Comer

Регистрация: Dec 2010
Сообщений: 121
Цитата:
Сообщение от samana Посмотреть сообщение
Попробуйте после строчки
Код AS3:
var sharedObj:SharedObject = SharedObject.getLocal("frameSave");
вызвать метод загрузки вручную, вот так
Код AS3:
load_click(null);
Спасибо огромное! Именно этого кода мне и не хватало. Отлично работает! Пусть Вам сопутствует удача!!!

Добавлено через 7 часов 33 минуты
Цитата:
Сообщение от samana Посмотреть сообщение
Код AS3:
load_click(null);
Знаете, покрутил туда-сюда, нашёл баг. Если в любом кадре ставлю кнопку с параметрами
Код AS3:
gotoAndStop(1);
то перехода в первый кадр нет. При её нажатии трейс выводит, "загружен кадр". Имеется в виду, что остаётся открытым тот кадр, с которого я хочу перейти в кадр 1, но перехода нет. Опять головоломка для меня...


Последний раз редактировалось Comer; 15.09.2015 в 17:04.
Старый 15.09.2015, 20:12
samana вне форума Посмотреть профиль Отправить личное сообщение для samana Найти все сообщения от samana
  № 9  
Ответить с цитированием
samana
 
Аватар для samana

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Хм, немного не понимаю, без видимости проекта.
Может ваша команда gotoAndStop(1), написана после того, как срабатывает команда загрузки load_click?

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

Регистрация: Dec 2010
Сообщений: 121
Цитата:
Сообщение от samana Посмотреть сообщение
Хм, немного не понимаю, без видимости проекта.
Может ваша команда gotoAndStop(1), написана после того, как срабатывает команда загрузки load_click?
Дело в том что не работает только gotoAndStop(1), а если в скобках будет цифра любого другого кадра, тогда срабатывает нормально. Код для кнопки перехода в кадр 1 пишу на кадре с кнопкой.

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

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

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


 


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


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