Показать сообщение отдельно
Старый 14.03.2008, 17:51
Iv вне форума Посмотреть профиль Отправить личное сообщение для Iv Посетить домашнюю страницу Iv Найти все сообщения от Iv
  № 27  
Iv
 
Аватар для Iv

Регистрация: Apr 2001
Адрес: Moscow
Сообщений: 1,475
И вот, наконец можем заменить вызов метода Math2.bezierSplit на метод split класса CubicBezierSVG.

Дублируем весь код, находящийся внутри блока if (до строки с else) и закомментируем верхний.
Чтобы использовать метод split требуется экземпляр объекта CubicBezierSVG. Создаем его, заменяем метод со старого на новый и задаем новый тип переменным bezier0 и bezier1:
Код AS3:
var sourceBezier : CubicBezierSVG = new CubicBezierSVG(point1, control1, control2, point2);
var halves:Array = sourceBezier.split();
var bezier0:CubicBezierSVG = halves[0] as CubicBezierSVG; 
var bezier1:CubicBezierSVG = halves[1] as CubicBezierSVG;
Честно говоря, после этих действий я ожидал увидеть ошибки и исправить их. Но из-за примененных операторов доступа к массиву тип объектов не определяется и редактор не может обнаружить ошибки. Придется искать их другим способом.

Переименуем переменную bezier0 на firstHalf. Редактор кода подсвечивает ошибки и мы идем по ним, заменяя имя и обращение к точке, к которой осуществляется доступ.
Проделываем то-же самое с переменной bezier1, заменив ее имя на secondHalf.
Получаем в итоге:
Код AS3:
getQuadBez_RP (point1, firstHalf.startControl, firstHalf.endControl, firstHalf.end, k, qcurves);
getQuadBez_RP(secondHalf.start, secondHalf.startControl, secondHalf.endControl, point2, k, qcurves);
Тестируем, убеждаемся в том, что всё в порядке.
__________________
http://realaxy.com


Последний раз редактировалось iNils; 20.12.2010 в 13:25.