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

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

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

Регистрация: Nov 2008
Сообщений: 33
По умолчанию проблема с hitTest

Двадцать клипов ["mc"+i] при хиттесте с любым из ["m"+i] = какоето действие.

Непонимаю в чём ошибка. Не хиттестится (. Help.




Код:
 // 
import mx.utils.Delegate;

for (var i:Number = 1; i<=20;i++) {

	this["mc"+i].onPress=function () {
		this.startDrag();
		this.swapDepths(getNextHighestDepth())
		
	}
	this["mc"+i].onRelease=function () {
		this.stopDrag();
		
		if (this.hitTest(["m"+i])) {
			this._x=["m"+i]._x
			this._y=["m"+i]._y
			
		trace ("ок")
			delete this.onPress;
			delete this.onRelease;
		}
	}
	}
.

Старый 03.12.2009, 14:38
Zik. вне форума Посмотреть профиль Отправить личное сообщение для Zik. Найти все сообщения от Zik.
  № 2  
Ответить с цитированием
Zik.
 
Аватар для Zik.

Регистрация: Nov 2007
Сообщений: 1,724
Код AS1/AS2:
for (var i:Number = 1; i <= 20; i++) {
	this["mc"+i].onPress=function () {
		this.startDrag();
		this.swapDepths(getNextHighestDepth());
	}
	this["mc"+i].onRelease=function () {
		this.stopDrag();
		for (var n:Number = 1; n <= 20; n++) {
			if (this.hitTest(["m"+n])) {
				this._x = ["m" + n]._x;
				this._y = ["m" + n]._y;
				trace ("ок");
				delete this.onPress;
				delete this.onRelease;
			}
		}
	}
}

Старый 03.12.2009, 14:48
rem345690 вне форума Посмотреть профиль Отправить личное сообщение для rem345690 Найти все сообщения от rem345690
  № 3  
Ответить с цитированием
rem345690

Регистрация: Nov 2008
Сообщений: 33
и так не хиттестится.

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

Регистрация: Nov 2007
Сообщений: 1,724
Код AS1/AS2:
for (var i:Number = 1; i <= 20; i++) {
	mc = attachMovie("m", "m"+i, i);
	mc.onPress = function():Void {
		trace(9)
		this.startDrag();
		this.swapDepths(getNextHighestDepth());
	}
	mc.onRelease = function():Void {
		this.stopDrag();
		for (var n:Number = 1; n <= 20; n++) {
			if (this.hitTest(_root["m"+n])) {
				if (this != _root["m"+n]) {
					this._x = ["m" + n]._x;
					this._y = ["m" + n]._y;
					trace ("ок");
					delete this.onPress;
					delete this.onRelease;
				}
			}
		}
	}
}

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

Регистрация: Nov 2008
Сообщений: 33
а так и на press не откликается.

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

Регистрация: Nov 2007
Сообщений: 1,724
как вы аттачите клипы?

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

Регистрация: Nov 2008
Сообщений: 33
там без аттачей. просто двадцать одних (mc1,mc2,mc3....) и двадцать других

Старый 03.12.2009, 15:27
Zik. вне форума Посмотреть профиль Отправить личное сообщение для Zik. Найти все сообщения от Zik.
  № 8  
Ответить с цитированием
Zik.
 
Аватар для Zik.

Регистрация: Nov 2007
Сообщений: 1,724
тогда исходник

Старый 03.12.2009, 15:28
rem345690 вне форума Посмотреть профиль Отправить личное сообщение для rem345690 Найти все сообщения от rem345690
  № 9  
Ответить с цитированием
rem345690

Регистрация: Nov 2008
Сообщений: 33
вот так вот заработало всё

for (var i:Number = 1; i <= 20; i++) {

this["mc"+i].onPress = function():Void {

this.startDrag();
this.swapDepths(getNextHighestDepth());
}
this["mc"+i].onRelease = function():Void {
this.stopDrag();
for (var n:Number = 1; n <= 20; n++) {
if (this.hitTest(_root["m"+n])) {

this._x = _root["m" + n]._x;
this._y = _root["m" + n]._y;

trace ("ок");

delete this.onPress;
delete this.onRelease;

}
}
}
}

Добавлено через 4 минуты
спасибо за помошь. )

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

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

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


 


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


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