Показать сообщение отдельно
Старый 14.10.2009, 18:56
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 5  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Определите начальный и конечный угол. Разделите его на количество ссылок минус один - это будет приращение.

Например, самая нижняя точка (ссылка 8 на Вашем рисунке) имеет угол (во флешовой системе координат!!) примерно 3/4*PI, а верхняя ссылка - 5/4*PI. Ссылок всего восемь. Имеем дельта фи = (5/4*PI - 3/4*PI) / (8-1);

Вот немного модифицированный код
Код AS1/AS2:
var centerX:Number = 180;
var centerY:Number = 150;
 
var radius:Number = 150;
 
var values:Array = new Array (
	'link 1', 'link 2', 'link 3',
	'link 4', 'link 5', 'link 6'
);
 
var startAngle:Number = 3 / 4 * Math.PI;
var finishAngle:Number = 5 / 4 * Math.PI;
 
var deltaPhi:Number = (this.finishAngle - this.startAngle) / (this.values.length - 1);
 
var textField:TextField;
var step:Number = 0;
 
for(var i:Number = 0; i < values.length; i++) {
	textField = this.createTextField('tf_' + step, step, 0, 0, 40, 18);
	textField.border = true;
	textField._x = centerX + radius * Math.cos(startAngle);
	textField._y = centerY + radius * Math.sin(startAngle);
	textField.text = values[i];
	startAngle += deltaPhi;
	step++;
}
__________________
Воспитан в TimeZero. Работаю в Mail.ru.