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

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

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

Регистрация: Mar 2009
Сообщений: 14
Question Чтобы переменная не обнулялась

Ситуация такая:
Делаю попытки создать что-то вроде примитивного квеста.
Основная задача - чтобы получилось сделать инвентарь.

Сам ролик можно видеть тут: http://skydin.narod.ru/round.swf

В сцене 2 кадра и следующие активные объекты:

round - кружок на который можно нажать и тогда он исчезает ("подбирается" игроком).
pram - прямоугольник который является объектом, появляющимся в "инвентаре" после того как я "подбираю" round.
И кнопка которая ведёт на 2-й кадр в котором только кнопка, которая ведёт обратно на первый и невидимая копия объекта pram

Теперь мой код:
Код AS1/AS2:
count=0;\\счётчик который проверяет - "забран" ли объект в инвентарь
 
pram._visible = false;
 
round.onPress = function(){ 
count++;
if(count >=1)
{
	round._visible = false;
	pram._visible = true;
}
}
 
stop();
Всё работает пока я на 2-м кадре не жму кнопку возвращения на 1-й.
Когда это происходит, переменная count обнуляется предмет пропадает из "инвентаря" и появляется обратно на локации1

1) Как сделать так, чтобы она оставалась в памяти?
2) Как сделать так, чтобы она сохранялась в случае если первая локация будет располагаться в сцене 1, а вторая локация - в сцене 2.

Постскриптум.

Я не знаю что со мной делать будете (в принципе можете что угодно).

Но в action script я влез по большой нужде (изучаю его наверное 3-4 дня) - делаю на нём (как на чём-то хоть как-то понятном моей голове) свою дипломную работу.
Большие и запутанные куски кода воспринимаю плохо. Я очень надеюсь что решение проблемы с обнулением переменных простое донельзя.

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

Регистрация: Nov 2008
Сообщений: 170
С такой же проблемой столкулись вы что и я. Короче говоря при переходе на прошлый кадр там всё строится заново и выполняется AS заново.
Тут конечно могу такое посоветовать:
В первом кадре пишите (только не там где уже инвентарь)
Код AS1/AS2:
var ball:Boolean = false;
В след. кадре пишите уже свой код но с такими исправлениями:
Код AS1/AS2:
if (ball) {
  	round._visible = false;
	pram._visible = true;
}else{
  	round._visible = true;
	pram._visible = false;
}
 
round.onPress = function(){ 
//count++;
//if(count >=1)
//{
	round._visible = false;
	pram._visible = true;
           ball = true;
//}
}
 
stop();

Старый 06.03.2009, 23:26
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 3  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
не пишите в кадрах. пишите в классах.
__________________
Отряд Котовскага

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

Регистрация: Mar 2009
Сообщений: 14
Класс! Работает.
И мало того что в соседних кадрах - так ещё и в соседних сценах.
Большое спасибо! Вы меня очень выручили!

Как я понял, Тип переменной boolean это как рычажок на 2 положения (true/false). Верно?
Кроме того - именно для этого типа переменной в flash предусмотрено сохранение значения.

Добавлено через 1 минуту
Котяра
А где можно посмотреть толковое и простое руководство по классам?

Старый 07.03.2009, 00:25
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 5  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
поищите книжку Колин Мук Основы ActionScript
__________________
Отряд Котовскага

Старый 07.03.2009, 01:04
Raddjuret вне форума Посмотреть профиль Отправить личное сообщение для Raddjuret Найти все сообщения от Raddjuret
  № 6  
Ответить с цитированием
Raddjuret

Регистрация: Mar 2009
Сообщений: 14
Наверное здесь же. Чтобы не плодить темы.

1) Для каждой локации я создал по сцене. И того сцены loc1 и loc2.
2) Создал отдельную сцену и назвал её inventory. Там отображается содержимое "Рюкзака" героя. Крупным планом.
3) В сценах loc1 и loc2 я поместил по гиперссылке, которые делают gotoAndStop на первый кадр сцены inventory.

Теперь проблема. Что мне прописать в кнопке, которая ведёт из inventory назад - чтобы если я попал в inventory из сцены loc2 - то я и возвращаюсь в сцену loc2, а если я вышел на неё из сцены loc1 - то я и возвращаюсь в сцену loc1?

Старый 07.03.2009, 01:27
gmaneye вне форума Посмотреть профиль Отправить личное сообщение для gmaneye Найти все сообщения от gmaneye
  № 7  
Ответить с цитированием
gmaneye

Регистрация: Nov 2008
Сообщений: 170
ну как бэ не очень понятен вопрос но может быть я попаду в точку:
gotoAndStop("сцена",кадр)
gotoAndPlay("сцена",кадр);

Старый 07.03.2009, 01:57
Raddjuret вне форума Посмотреть профиль Отправить личное сообщение для Raddjuret Найти все сообщения от Raddjuret
  № 8  
Ответить с цитированием
Raddjuret

Регистрация: Mar 2009
Сообщений: 14
gmaneye
В том то и дело что эти операторы я знаю. А вопрос переформулирую (попробую)

Из сцены 1 можно попасть в сцену 4
Из сцены 2 можно попасть в сцену 4
Из сцены 3 можно попасть в сцену 4

как настроить одну кнопку в сцене 4 - чтобы она возвращала меня именно в ту сцену, через которую я попал в сцену 4?

То есть: если поставить просто gotoAndStop и назначу ей "вернуться в сцену 1" то получится как-то так:

Я стартую в сцене 1 - из неё попадаю в сцену 4. Я хочу вернуться - и из сцены 4 обратно попадаю в сцену 1. Отлично.
НО.
Если я из сцены 1 сначала иду в сцену 3 - и из неё попадаю в сцену 4. А потом хочу вернуться, то я нажимаю кнопку - и... однократно написанный стабильный сценарий кнопки переносит меня не в сцену 3, а в сцену 1.

Старый 07.03.2009, 02:13
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 9  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
забудьте о сценах и кадрах. кадры только для анимации.
в главной сцене делаешь клип . называешь его main.
линкуешь его к классу Main (файл Main.as)
в этом классе описываешь поведение кнопки ..
Ладно, читайте Мука (пусть простят меня за частое использование Его имени, но для начального обучения - он лучше всех.. проверял на кошках)
__________________
Отряд Котовскага

Старый 07.03.2009, 02:39
gmaneye вне форума Посмотреть профиль Отправить личное сообщение для gmaneye Найти все сообщения от gmaneye
  № 10  
Ответить с цитированием
gmaneye

Регистрация: Nov 2008
Сообщений: 170
согласен с Котяра, тоже хочу изучать эту книжку, чтобы всё знать
Кстати вот и он (МУК)
MUK

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

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

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


 


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


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