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

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

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

Регистрация: May 2014
Сообщений: 54
По умолчанию проблема с gotoAndPlay

В ENTER_FRAME отслеживаю переменную true или нет а затем в коде прописиваю если тру то gotoAndPlay(кадр) но проблема в том что я отслеживаю постоянно некую переменную а когда в энтерфрейм пишу gotoAndPlay() оно перепригивает и зависает ну понятно из за того что оно делает эту функцию через каждый кадр. Как сделать так что бы переменная отслеживалось и потом как нибудь если будет тру то перепригнуть на тот кадр. Oбычная функция так не может потому что он один раз выдаст false и все.

Код AS3:
var is_detected:Boolean;
       var mc:MovieClip = new Mc();
stage.addEventListener(Event.ENTER_FRAME, onEf);
function onEf(e:Event):void {
 if (mc.hitTestObjects('некий другой обьект')){
     is_detected = true;
     if (is_detected){
     gotoAndPlay('кадр с дракой?');
    }
}
}
__________________
Деньги это бумажки радости...

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Код AS3:
var mc:MovieClip = new Mc();
stage.addEventListener(Event.ENTER_FRAME, onEf);
function onEf(e:Event):void {
    if (mc.hitTestObjects('некий другой обьект')){
         stage.removeEventListener(Event.ENTER_FRAME, onEf);
         gotoAndPlay('кадр с дракой?');
    }
 
}
п.с. Повторю то, что на этом форуме повторяется с завидной регулярностью. Не надо писать в кадрах. Пишите в классах.

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

Регистрация: May 2014
Сообщений: 54
Цитата:
Сообщение от caseyryan Посмотреть сообщение
Код AS3:
var mc:MovieClip = new Mc();
stage.addEventListener(Event.ENTER_FRAME, onEf);
function onEf(e:Event):void {
    if (mc.hitTestObjects('некий другой обьект')){
         stage.removeEventListener(Event.ENTER_FRAME, onEf);
         gotoAndPlay('кадр с дракой?');
    }
 
}
п.с. Повторю то, что на этом форуме повторяется с завидной регулярностью. Не надо писать в кадрах. Пишите в классах.

Я не в кадрах пишу просто я подумал этого достаточно что бы понять суть. А так все в классах и есть.
__________________
Деньги это бумажки радости...

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Ну а зачем тогда
Код AS3:
gotoAndPlay('кадр с дракой?');
?

Старый 18.02.2015, 20:30
Capnmeth вне форума Посмотреть профиль Отправить личное сообщение для Capnmeth Найти все сообщения от Capnmeth
  № 5  
Ответить с цитированием
Capnmeth
 
Аватар для Capnmeth

Регистрация: May 2014
Сообщений: 54
man.gotoAndPlay(); а разве персонажа анимировать не нужно?
__________________
Деньги это бумажки радости...

Старый 19.02.2015, 14:38
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 6  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Capnmeth, хорошо бы (настаиваю) пользоваться знаками препинания.

Добавлено через 2 минуты
По вопросу:
Код AS3:
var is_detected:Boolean;
var mc:MovieClip = new Mc();
 
stage.addEventListener(Event.ENTER_FRAME, onEf);
 
function onEf(e:Event):void
{
    if (!is_detected && mc.hitTestObjects('некий другой обьект'))
    {
        is_detected = true;
        gotoAndPlay('кадр с дракой?');
    }
}
__________________
Поймай яблоко 2!

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

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,922
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
Zebestov, else if(!mc.hitTestObject('некий другой объект')) isDetected = false;
?
__________________
There is no thing in this world that is not simple.

Старый 19.02.2015, 15:57
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 8  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Нет. is_detected должен быть false по умолчанию + должен (ну, следуя игровой логике) устанавливаться в false по факту окончания (победного окончания) драки с объектом, на который налетел наш mc.
__________________
Поймай яблоко 2!

Старый 19.02.2015, 18:58
Capnmeth вне форума Посмотреть профиль Отправить личное сообщение для Capnmeth Найти все сообщения от Capnmeth
  № 9  
Ответить с цитированием
Capnmeth
 
Аватар для Capnmeth

Регистрация: May 2014
Сообщений: 54
Цитата:
Сообщение от Zebestov Посмотреть сообщение
Capnmeth, хорошо бы (настаиваю) пользоваться знаками препинания.

Добавлено через 2 минуты
По вопросу:
Код AS3:
var is_detected:Boolean;
var mc:MovieClip = new Mc();
 
stage.addEventListener(Event.ENTER_FRAME, onEf);
 
function onEf(e:Event):void
{
    if (!is_detected && mc.hitTestObjects('некий другой обьект'))
    {
        is_detected = true;
        gotoAndPlay('кадр с дракой?');
    }
}
Это один раз а потом оно работать не будет.
__________________
Деньги это бумажки радости...

Старый 19.02.2015, 19:04
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 10  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Конечно не будет, потому что читаем внимательно и реализуем в своем коде:

Цитата:
Сообщение от Zebestov Посмотреть сообщение
is_detected … должен (ну, следуя игровой логике) устанавливаться в false по факту окончания (победного окончания) драки с объектом, на который налетел наш mc.
Можно басенку и сократить, конечно. Насколько я понял, mc.hitTestObjects('некий другой обьект') выдает true, потому что этот самый 'некий другой обьект' по-прежнему висит на сцене. Что если по факту столкновения его просто убирать (из логики, из отображения, или что там у тебя). Тогда все и без флага заработает:

1. НОВЫЙ КАДР: проверяем столкновения, ОП-ПА!, убрали 'некий другой обьект', запустили анимацию драки.
2. НОВЫЙ КАДР: проверяем столкновения… ничего нема — не с кем в этой самой точке больше сталкиваться.
__________________
Поймай яблоко 2!

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

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

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


 


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


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