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

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

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

Регистрация: Apr 2013
Сообщений: 32
По умолчанию Взаимодействие между кадрами

Здравствуйте! У меня в "кадре 1" кнопка, при нажатии на которую "включается" весь код, то есть в этом кадре весь основной код. Я хочу создать кнопку типа "restart", при нажатии на которую все обнуляется и встает на исходные позиции.
Код кнопки "Restart"
Код AS3:
restart.addEventListener(MouseEvent.CLICK, restart2);
 
function restart2(event:MouseEvent):void {
    gotoAndPlay(0);
}
Все переходит на 0 кадр, но счетчики не обнуляются(Очки, и т.д.), то есть потом просто на поле налаживаются новые значения. Можно как то написать что то типа того?

Код AS3:
restart.addEventListener(MouseEvent.CLICK, restart2);
 
function restart2(event:MouseEvent):void {
    gotoAndPlay(0);
    GameScore = 0; // значение которое должно обнулится при нажатии на кнопку. Или указать как то так this.GameScore = 0 ?
 
}
отелось бы узнать, как можно взаимодействовать между кадрами. Нажав на "кадр 2", обнулился "кадр 1". Спасибо.

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
как можно взаимодействовать между кадрами. Нажав на "кадр 2", обнулился "кадр 1".
Не писать код в кадрах. Если уж не в классах, то хотя бы вынести весь код на отдельный слой, и не делить его по кадрам.

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

Регистрация: Apr 2012
Сообщений: 239
GameScore = 0;
gotoAndPlay(0);

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

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Берёте все свои счетчики и переносите их в поля класса:
Код AS3:
public class State {
    public var gameScore:int = 0;
    public var hitpoints:int = 100;
    ...
}
В первом кадре пишете:
Код AS3:
var state:State = new State();
Во всех остальных теперь работаете через state.gameScore, state.hitpoints и т.д.
Цитата:
GameScore = 0;
gotoAndPlay(0);
Так делать не надо, забудете что надо выставить в нормальное положение.

Стоп.
Вы же и так должны счётчики в первом кадре выставить. Тут проблема в другом.
Покажите как Вы его перед игрой выставляете, этот GameScore.

Старый 17.04.2013, 02:42
timedo вне форума Посмотреть профиль Отправить личное сообщение для timedo Найти все сообщения от timedo
  № 5  
Ответить с цитированием
timedo

Регистрация: Apr 2013
Сообщений: 32
Цитата:
Сообщение от expl Посмотреть сообщение
Стоп.
Вы же и так должны счётчики в первом кадре выставить. Тут проблема в другом.
Покажите как Вы его перед игрой выставляете, этот GameScore.
Вот я его объявляю:
Код AS3:
var GameScore:Number = 0;
Ниже в коде функция для подсчета очков:
Код AS3:
function colide() 
{
	if(ov.hitTestObject(target)) {
        GameScore += 600;
    }
    else if(ov.hitTestObject(target2))  /*
    дальше плюсует +500 и т.д. */
Это все в одном кадре.

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

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Цитата:
var GameScore:Number = 0;
Может он только при инициализации класса, автосгенеренного по коду в кдрах, присваивание делает.
А что если так?
Код AS3:
var GameScore:Number = 0;
GameScore = 0;

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

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

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


 


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


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