Показать сообщение отдельно
Старый 20.08.2012, 17:46
stepa323 вне форума Посмотреть профиль Отправить личное сообщение для stepa323 Найти все сообщения от stepa323
  № 5  
Ответить с цитированием
stepa323
 
Аватар для stepa323

Регистрация: Apr 2010
Сообщений: 97
В общем у меня вызывается функция по нажатию:
Код AS1/AS2:
_root.skill="";
_root.magic=function(skill){
	if(skill!=""){
		switch(_root.skill){
		case "light":
				_root.light=attachMovie("light","light",10000,{_x:_xmouse,_y:_ymouse});
				matack(obj=mouse,dmg=10)
				setInterval(removeMovieClip,2000,_root.light);break;
 
				case "earth":
				_root.earth=attachMovie("earth","earth",10001,{_x:_xmouse,_y:_ymouse});
				matack(obj=_root.earth,dmg=20)
				setInterval(removeMovieClip,4000,_root.earth);break;
 
		}
	}
}
 
 
function matack(obj,dmg){
sounds("thunder.wav");
	for(d=mob.length-15;d<=mob.length;d++){
		if(mob[d].hitTest(obj)){
 
			mob[d].hp-=dmg;
			hp=20/l_green[d+200].hp;
			l_green[d+200]._width=mob[d].hp*hp;
			if(mob[d].hp<=0)
			{
			blood[num_blood]=attachMovie("blood","blood"+num_blood,num_blood,{_x:mob[d]._x,_y:mob[d]._y});
			setInterval(remove,5000,obj=blood[num_blood]);
			num_blood+=1;
			mob[d].gotoAndPlay(8);
			mob[d].sp=0;
			setTimeout(remove,400,mob[d]);
			setTimeout(remove,400,l_green[d+200]);
			setTimeout(remove,400,l_red[d+100]);
			setTimeout(remove,600,_root.light);
			_root.kill+=1;
			_root.death+=1;
			_global.kill_score+=1;
			t_kill.text=kill;
			add_gold(gold=5);
 
			}
		}
 
 
	}
	_root.skill="";
 
 
}
Почему только до первого?
По нажатию клип охватывает несколько объектов, но засчитывает соприкосновение только с одним ближайшим по номеру записи в массиве объектом!

Добавлено через 16 часов 27 минут
Все нашел в чем ошибка, у меня obj заменялся другим значением в интервале
Код AS1/AS2:
setInterval(remove,5000,obj=blood[num_blood]);