Форум 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=211507)

Comer 13.09.2015 21:21

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

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


undefined 13.09.2015 21:37

попробуй дописать
Код AS3:

sharedObj.flush();

после
Код AS3:

sharedObj.data.frameNum = (root as MovieClip).currentFrame;


Comer 13.09.2015 21:48

Цитата:

Сообщение от undefined (Сообщение 1186676)
попробуй дописать
Код AS3:

sharedObj.flush();

после
Код AS3:

sharedObj.data.frameNum = (root as MovieClip).currentFrame;



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

caseyryan 13.09.2015 23:22

Там не Number надо тип, а uint

Comer 13.09.2015 23:24

Цитата:

Сообщение от caseyryan (Сообщение 1186684)
Там не Number надо тип, а uint


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

AlexCooper 13.09.2015 23:53

Цитата:

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

Трейс выводит? Т.е. из шаредов номер кадра получаете?

samana 14.09.2015 00:22

Попробуйте после строчки
Код AS3:

var sharedObj:SharedObject = SharedObject.getLocal("frameSave");

вызвать метод загрузки вручную, вот так
Код AS3:

load_click(null);

Но есть сомнения что переход на нужный кадр не произойдёт, как как он мог ещё просто не загрузиться.
Значит нужно сделать какой-то прелоадер.

Comer 15.09.2015 09:29

Цитата:

Сообщение от samana (Сообщение 1186691)
Попробуйте после строчки
Код AS3:

var sharedObj:SharedObject = SharedObject.getLocal("frameSave");

вызвать метод загрузки вручную, вот так
Код AS3:

load_click(null);


Спасибо огромное! Именно этого кода мне и не хватало. Отлично работает! Пусть Вам сопутствует удача!!!

Добавлено через 7 часов 33 минуты
Цитата:

Сообщение от samana (Сообщение 1186691)
Код AS3:

load_click(null);


Знаете, покрутил туда-сюда, нашёл баг. Если в любом кадре ставлю кнопку с параметрами
Код AS3:

gotoAndStop(1);

то перехода в первый кадр нет. При её нажатии трейс выводит, "загружен кадр". Имеется в виду, что остаётся открытым тот кадр, с которого я хочу перейти в кадр 1, но перехода нет. Опять головоломка для меня...

samana 15.09.2015 20:12

Хм, немного не понимаю, без видимости проекта.
Может ваша команда gotoAndStop(1), написана после того, как срабатывает команда загрузки load_click?

Comer 15.09.2015 20:15

Цитата:

Сообщение от samana (Сообщение 1186793)
Хм, немного не понимаю, без видимости проекта.
Может ваша команда gotoAndStop(1), написана после того, как срабатывает команда загрузки load_click?

Дело в том что не работает только gotoAndStop(1), а если в скобках будет цифра любого другого кадра, тогда срабатывает нормально. Код для кнопки перехода в кадр 1 пишу на кадре с кнопкой.


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

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