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

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

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

Регистрация: Feb 2013
Сообщений: 51
По умолчанию Странное зацикливание

Есть класс который реализует 2 ф-ции, в 1 добавляются обьекты на рабочую область, во 2 проверяется соприкосновение персонажа с обьектом и если соприкасается то происходит удаление. В конце 2 ф-ции я вывожу i, по сути должно выводится к примеру, при соприкосновении с обьектом с номером 1, должно 1 раз вывести единицу и удалить обьект.
Что происходит у меня, при соприкосновении возникает цикл единиц, обьект исчезает но как только персонаж перестает соприкасаться с ним, он снова появляется. Мне кажется я видимо как то не так передаю ф-ции в обработчик событий, потому что такой цикл у меня возникает буквально везде, обьясните пожалуйста где я могу допускать ошибку, а то я уже устал.

Примечание: в классе GameLoader в ф-ции создается экземпляр класса Meat, далее в кадре в ф-ции game() создается экземпляр класса GameLoader и вызывается ф-ция в которой создан экземпляр класса Meat. После ф-ция game передается в onClipEvent(enterFrame) который находится в клипе на рабочей области. Прошу разьяеснить что я не так делаю из-за чего такие циклы и в следствии не правильная работа. Если надо скину исходник.
Код AS1/AS2:
class Meat  {
 
	var numberOfMeat:Number = 3;
 
function createcoll() 
{
for (var i = 0; i<numberOfMeat; i++) {
	_root.attachMovie('meat','meat'+i,i,{_x:320, _y:200});
 
	_root['meat1']._x=500;
	_root['meat1']._y=100;
 
 
	_root['meat2']._x=600;
	_root['meat2']._y=200;
 
}
	}
 
function collectable() {
	// проверяем соприкосновение
	for (var i = 0; i<=numberOfMeat; i++) {
		if (_root['meat'+i].hitTest(_root.cat)) {
			_root['meat'+i].removeMovieClip();
			// удаляем клип
			trace(i);
 
		}
	}
}
 
}
Класс GameLoader
Код AS1/AS2:
class Gameloader
{
 
	public function gameplay()
	{
 
		var meat:Meat = new Meat();
		meat.createcoll();
		meat.collectable();}
}
а это уже код в кадре и в клипе
Код AS1/AS2:
function game() {
	var Game:Gameloader = new Gameloader();
	Game.gameplay();
 
}
Код AS1/AS2:
onClipEvent (enterFrame) {
_root.game();
}

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

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

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


 


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


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