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

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

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

Регистрация: May 2012
Сообщений: 166
По умолчанию Функция на 1 действие

Приветствую, можно ли объявить слушатель события как ENTER_FRAME только не по кадрово а ровно на 1 действие, например произошел hitTestObject и функция выведет trace('1');
1
А не:
1
1
1
1
и т.д.

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

Регистрация: Nov 2006
Адрес: СПб
Сообщений: 921
Отправить сообщение для FlashRus с помощью ICQ Отправить сообщение для FlashRus с помощью Skype™
Можно проверять не в ENTER_FRAME или флаг какой нить предусмотреть....

Старый 21.05.2012, 15:06
kukareku вне форума Посмотреть профиль Отправить личное сообщение для kukareku Найти все сообщения от kukareku
  № 3  
Ответить с цитированием
kukareku

Регистрация: May 2012
Сообщений: 18
Код AS3:
function enterFrameHandler(e:Event):void {
 
if (hitTestObject(...)){
trace("1");
removeEventListener(Event.EMTER_FRAME, enterFramHandler);
}
}

Старый 21.05.2012, 17:28
Tetraeon вне форума Посмотреть профиль Отправить личное сообщение для Tetraeon Найти все сообщения от Tetraeon
  № 4  
Ответить с цитированием
Tetraeon

Регистрация: May 2012
Сообщений: 166
Необходимо чтобы слушатель события оставался активным, но выполнял ровно 1 действие... пробовал уже много чего , но что то не выходит, даже если таймер использовать только при приличной задержке в несколько секунд что то похожее получается, но это не катит.. 1 словом нужен другой вариант.


Последний раз редактировалось Tetraeon; 21.05.2012 в 17:31.
Старый 21.05.2012, 18:07
TanaTiX вне форума Посмотреть профиль Отправить личное сообщение для TanaTiX Найти все сообщения от TanaTiX
  № 5  
Ответить с цитированием
TanaTiX
 
Аватар для TanaTiX

блогер
Регистрация: Feb 2008
Сообщений: 1,453
Записей в блоге: 4
Tetraeon, а зачем оставлять слушатель, если от обработчика требуется только однократное исполнение?
__________________
Ну все, теперь Забава м-о-я.
Гы-гы, а корабль мой!

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

блогер
Регистрация: Nov 2007
Адрес: Almaty, Moscow
Сообщений: 396
Записей в блоге: 5
Отправить сообщение для Партизан с помощью Skype™
Нда...

Код AS3:
private var oneCall:Boolean
 
function enterFrameHandler(e:Event):void {
 
if (hitTestObject(...)&& !oneCall){
trace("1");
oneCall = true;
}
}

Старый 21.05.2012, 18:16
Tetraeon вне форума Посмотреть профиль Отправить личное сообщение для Tetraeon Найти все сообщения от Tetraeon
  № 7  
Ответить с цитированием
Tetraeon

Регистрация: May 2012
Сообщений: 166
это действие будит повторятся не однократно, а выполнятся должно 1 раз за раз

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

блогер
Регистрация: Nov 2007
Адрес: Almaty, Moscow
Сообщений: 396
Записей в блоге: 5
Отправить сообщение для Партизан с помощью Skype™
Tetraeon, а может вы чуть подробнее расскажете задачу, может вы не теми методами стараетесь ее решить?

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

Регистрация: May 2012
Сообщений: 166
Скорее всего) Задача при соприкосновении объекта А с объектом В внести изменение значения переменной
объекта В
Код AS3:
public function cleaveRad (Event):void 
{
	if (this.hitTestObject(Hero.hero.cleaveR)&&!oneCall)
	{
		if (hP>0)
		{
			hP-=Hero.hero.damage*2;	
                         oneCall = true;	
		}
	}
 
}
Работает хорошо, но значению oneCall опять же нужно присвоить true спустя промежуток времени, когда объект А покинет объект В
Пробовал:
Код AS3:
public function cleaveRad (Event):void 
{
	if (this.hitTestObject(Hero.hero.cleaveR)&&!oneCall)
	{
		if (hP>0)
		{
			hP-=Hero.hero.damage*2;
			oneCall = true;
		}
 
	}
                oneCall = false;
}
Но все равно не то...


Последний раз редактировалось Tetraeon; 21.05.2012 в 18:28.
Старый 21.05.2012, 18:51
Партизан вне форума Посмотреть профиль Отправить личное сообщение для Партизан Найти все сообщения от Партизан
  № 10  
Ответить с цитированием
Партизан
 
Аватар для Партизан

блогер
Регистрация: Nov 2007
Адрес: Almaty, Moscow
Сообщений: 396
Записей в блоге: 5
Отправить сообщение для Партизан с помощью Skype™
А когда он его покинет, я так понимаю вы не знаете... Тогда, как-то так наверное:

Код AS3:
public function cleaveRad (e:Event):void 
{
	if (this.hitTestObject(Hero.hero.cleaveR))
	{
              if(!oneCall) {
		if (hP>0)
		   {
			hP-=Hero.hero.damage*2;
			oneCall = true;
		    }
                }
 
	}else{
                oneCall = false;
        }
}

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

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

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


 


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


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