![]() |
Чтобы переменная не обнулялась
Ситуация такая:
Делаю попытки создать что-то вроде примитивного квеста. Основная задача - чтобы получилось сделать инвентарь. Сам ролик можно видеть тут: http://skydin.narod.ru/round.swf В сцене 2 кадра и следующие активные объекты: round - кружок на который можно нажать и тогда он исчезает ("подбирается" игроком). pram - прямоугольник который является объектом, появляющимся в "инвентаре" после того как я "подбираю" round. И кнопка которая ведёт на 2-й кадр в котором только кнопка, которая ведёт обратно на первый и невидимая копия объекта pram Теперь мой код: Код AS1/AS2:
Когда это происходит, переменная count обнуляется предмет пропадает из "инвентаря" и появляется обратно на локации1 1) Как сделать так, чтобы она оставалась в памяти? 2) Как сделать так, чтобы она сохранялась в случае если первая локация будет располагаться в сцене 1, а вторая локация - в сцене 2. Постскриптум. Я не знаю что со мной делать будете (в принципе можете что угодно). Но в action script я влез по большой нужде (изучаю его наверное 3-4 дня) - делаю на нём (как на чём-то хоть как-то понятном моей голове) свою дипломную работу. Большие и запутанные куски кода воспринимаю плохо. Я очень надеюсь что решение проблемы с обнулением переменных простое донельзя. |
С такой же проблемой столкулись вы что и я. Короче говоря при переходе на прошлый кадр там всё строится заново и выполняется AS заново.
Тут конечно могу такое посоветовать: В первом кадре пишите (только не там где уже инвентарь) Код AS1/AS2:
Код AS1/AS2:
|
не пишите в кадрах. пишите в классах.
|
Класс! Работает.
И мало того что в соседних кадрах - так ещё и в соседних сценах. Большое спасибо! Вы меня очень выручили! Как я понял, Тип переменной boolean это как рычажок на 2 положения (true/false). Верно? Кроме того - именно для этого типа переменной в flash предусмотрено сохранение значения. Добавлено через 1 минуту Котяра А где можно посмотреть толковое и простое руководство по классам? |
поищите книжку Колин Мук Основы ActionScript
|
Наверное здесь же. Чтобы не плодить темы.
1) Для каждой локации я создал по сцене. И того сцены loc1 и loc2. 2) Создал отдельную сцену и назвал её inventory. Там отображается содержимое "Рюкзака" героя. Крупным планом. 3) В сценах loc1 и loc2 я поместил по гиперссылке, которые делают gotoAndStop на первый кадр сцены inventory. Теперь проблема. Что мне прописать в кнопке, которая ведёт из inventory назад - чтобы если я попал в inventory из сцены loc2 - то я и возвращаюсь в сцену loc2, а если я вышел на неё из сцены loc1 - то я и возвращаюсь в сцену loc1? |
ну как бэ не очень понятен вопрос но может быть я попаду в точку:
gotoAndStop("сцена",кадр) gotoAndPlay("сцена",кадр); |
gmaneye
В том то и дело что эти операторы я знаю. А вопрос переформулирую (попробую) Из сцены 1 можно попасть в сцену 4 Из сцены 2 можно попасть в сцену 4 Из сцены 3 можно попасть в сцену 4 как настроить одну кнопку в сцене 4 - чтобы она возвращала меня именно в ту сцену, через которую я попал в сцену 4? То есть: если поставить просто gotoAndStop и назначу ей "вернуться в сцену 1" то получится как-то так: Я стартую в сцене 1 - из неё попадаю в сцену 4. Я хочу вернуться - и из сцены 4 обратно попадаю в сцену 1. Отлично. НО. Если я из сцены 1 сначала иду в сцену 3 - и из неё попадаю в сцену 4. А потом хочу вернуться, то я нажимаю кнопку - и... однократно написанный стабильный сценарий кнопки переносит меня не в сцену 3, а в сцену 1. |
забудьте о сценах и кадрах. кадры только для анимации.
в главной сцене делаешь клип . называешь его main. линкуешь его к классу Main (файл Main.as) в этом классе описываешь поведение кнопки .. Ладно, читайте Мука (пусть простят меня за частое использование Его имени, но для начального обучения - он лучше всех.. проверял на кошках) |
|
| Часовой пояс GMT +4, время: 07:25. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.