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

Регистрация: Feb 2009
Сообщений: 180
По умолчанию Программная линия не отображается поверх нижележащих слоев

Здравствуйте. Не могу понять в чем проблема. АС протягивающий линию находится аж на 9-ом слое в сцене. Все слои оказавшиеся ниже перекрывают ее. В том числе и фон.
Линия в данном случае имитирует поведение веревки. Код для веревки брал в найденном исходнике.
Код AS1/AS2:
numPoints = 20;
minDist = 50;
init();
function init()
{
	var dx = h2._x - rocket2._x;
	var dy = h2._y - rocket2._y;
	points = new Array();
	for(var i=0;i<numPoints;i++)
	{
		points[i] = {x:rocket2._x + dx / numPoints * i, y:rocket2._y + dy / numPoints * i, vx:0, vy:0};
	}
	onEnterFrame = draw;
}
 
function draw()
{
	for(var i=0;i<numPoints;i++)
	{
		points[i].x += points[i].vx;
		points[i].y += points[i].vy;
		/*
		points[i].vx += Math.random() - .5;
		points[i].vy += Math.random() - .5;
		*/
		if(i == 0)
		{
			var x1 = rocket2._x;
			var y1 = rocket2._y;
		}
		else
		{
			var x1 = points[i-1].x;
			var y1 = points[i-1].y;
		}
		if(i < numPoints-1)
		{
			var x2 = points[i+1].x;
			var y2 = points[i+1].y;
		}
		else
		{
			var x2 = h2._x;
			var y2 = h2._y;
		}
//		trace([x1, y1, x2, y2]);
		points[i].vx += (x1 - points[i].x) * .05;
		points[i].vy += (y1 - points[i].y) * .05;
		points[i].vx += (x2 - points[i].x) * .05;
		points[i].vy += (y2 - points[i].y) * .05;
		points[i].vy += .05;
 
		points[i].vx *= .93;
		points[i].vy *= .93;
	}
	clear();
	lineStyle(4,0x0000FF);
	moveTo(rocket2._x, rocket2._y);
	for(var i=0;i<numPoints-1;i++)
	{
		var x = (points[i].x + points[i+1].x) / 2;
		var y = (points[i].y + points[i+1].y) / 2;
		curveTo(points[i].x, points[i].y, x, y);
	}
	curveTo(points[i].x, points[i].y, h2._x, h2._y);
}
h2 и rocket2 - инстанс неймы объектов между которыми "натягивается" линия(веревка).
Заранее спасибо за помощь.