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

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

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

Регистрация: Feb 2011
Сообщений: 39
По умолчанию Почему не работает hitTestObject

Подскажитеему, почему не работает следующий код:
Код AS3:
stop();
//--------------------------------
var MyBasicElement:Array = [];
var MyLevel:Array = [];
 
for(var i=0;i<5;i++)
{
	MyLevel[i] = new CLevel();
	addChild(MyLevel[i]);
}
 
for(var j=0;j<5;j++)
{
	MyBasicElement[i] = new CBasicElement(MyQuest.Text_txt[MyQuest.Qindex]);
	addChild(MyBasicElement[i]);
}
 
stage.addEventListener(MouseEvent.MOUSE_UP,hitConect);
function hitConect(e:Event):void
{
	for(i=0;i<5;i++)
	{
		for(j=0;j<5;j++)
		{
			if(MyBasicElement[i].hitTestObject(MyLevel[j]) == true) trace("211241");
		}
	}
}
Выдает следующую ошибку:
TypeError: Error #1010: Термин не определен и не имеет свойств.
at Haffman_fla::MainTimeline/hitConect()

Старый 28.02.2011, 17:48
Волгоградец вне форума Посмотреть профиль Отправить личное сообщение для Волгоградец Найти все сообщения от Волгоградец
  № 2  
Ответить с цитированием
Волгоградец
 
Аватар для Волгоградец

блогер
Регистрация: Sep 2007
Адрес: Гамбург
Сообщений: 1,648
Записей в блоге: 12
Ошибка во втором цикле for - в MyBasicElement нужно указывать j, а не i.

upd.: ну и конечно же я должен еще написать что в AS не принято массивы назвать с большой буквы.

Старый 28.02.2011, 17:51
Kadmus вне форума Посмотреть профиль Отправить личное сообщение для Kadmus Найти все сообщения от Kadmus
  № 3  
Ответить с цитированием
Kadmus

Регистрация: Feb 2011
Сообщений: 39
Проблема осталась таже(

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

блогер
Регистрация: Sep 2007
Адрес: Гамбург
Сообщений: 1,648
Записей в блоге: 12
Напиши полный текст ошибки.

Старый 28.02.2011, 17:58
Kadmus вне форума Посмотреть профиль Отправить личное сообщение для Kadmus Найти все сообщения от Kadmus
  № 5  
Ответить с цитированием
Kadmus

Регистрация: Feb 2011
Сообщений: 39
Это полный текст

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

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
у вас в hitConect не объявлены ни i ни j
__________________
http://cleptoman.free-lance.ru
achivements: дважды благословлен на воровство. осеяный благодатью

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

блогер
Регистрация: Sep 2007
Адрес: Гамбург
Сообщений: 1,648
Записей в блоге: 12
Эмммм... Второй цикл должен быть такой:
Код AS3:
for(var j=0;j<5;j++)
{
	MyBasicElement[<b>jb>] = new CBasicElement(MyQuest.Text_txt[MyQuest.Qindex]);
	addChild(MyBasicElement[<b>jb>]);
}
Я даже проверил - работает.

cleptoman, код в одной области видимости - даже ворнинг выкенет, если объявить i и j еще раз...

p.s.: что за фигня - тэги форматирования не работают.


Последний раз редактировалось Волгоградец; 28.02.2011 в 18:17.
Старый 28.02.2011, 18:11
Kadmus вне форума Посмотреть профиль Отправить личное сообщение для Kadmus Найти все сообщения от Kadmus
  № 8  
Ответить с цитированием
Kadmus

Регистрация: Feb 2011
Сообщений: 39
тьфу, сори не увидел. Ошибка исчезла, но чесно говоря всеравно trace не срабатывает

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

блогер
Регистрация: Sep 2007
Адрес: Гамбург
Сообщений: 1,648
Записей в блоге: 12
trace не срабатывает потому что ошибка в логике - не срабатывает условие, т.е. объекты не пересекаются.

Старый 28.02.2011, 18:27
Kadmus вне форума Посмотреть профиль Отправить личное сообщение для Kadmus Найти все сообщения от Kadmus
  № 10  
Ответить с цитированием
Kadmus

Регистрация: Feb 2011
Сообщений: 39
Всё, я исправил, спасибо. Но теперь мне нужно вместо trace использовать метод класса СBasicElement. Сново пишет ошибку:
ReferenceError: Error #1069: Не удалось найти свойство NO_HIT в CBasicElement; отсутствует значение по умолчанию.
at Haffman_fla::MainTimeline/hitConect()

Вот код с хитТестом:
Код AS3:
stage.addEventListener(MouseEvent.MOUSE_UP,hitConect);
function hitConect(e:Event):void
{
	for(i=0;i<5;i++)
	{
		for(j=0;j<5;j++)
		{
			if(MyBasicElement[i].hitTestObject(MyLevel[j]) == true) MyBasicElement[i].HIT();
			else MyBasicElement[i].NO_HIT();
		}
	}
}
Добавлено через 6 минут
))) И это исправил, как ни странно появилась еще одна проблема. При срабатывании хитТеста для одного элемента, он автоматом срабатывает 25 раз.


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

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

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


 


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


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