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

Регистрация: Apr 2001
Адрес: Moscow
Сообщений: 1,475
По умолчанию Определение следующей цели

Давайте определимся, с тем, чего мы будем добиваться на этом этапе и критерях его окончания.

Тот факт, что редактор не показывает нам ошибки нетипизированного доступа вовсе не означает, что в коде их нет.

Неявный нетипизированный доступ - это применение наборов переменных представляющих одну сущность вместо применения объекта такого типа, который отражает сущность.

К примеру, точку на плоскости в координатах x=10, y=15 можно представить разными способами:
Код AS3:
var point1:Point = new Point(10, 15);
var point2:Array = new Array(10, 15);
var point3:Object = {x:10, y:15};
Но только первый способ применяет объект такого типа, который отражает сущность точки. В остальных случаях можно говорить о скрытом нетипизированном доступе.

Пройдемся по классам и отметим для себя такие случаи:

Класс SVGDisplayInFlash

метод getShapes:
- массивы хранят данные, а не объекты, представляющие сущности.

Класс Math2

метод getQuadBez_RP:
- в аргументах передаются точки вместо кривой Безье 3го порядка;
- внутри метода имеются обращения к массивам данных вместо обращений к сущностям.

метод intersect2Lines:
- в аргументах передаются точки вместо отрезков;

метод midpoint:
- в аргументах передаются координаты вместо отрезка;

метод bezierSplit:
- в аргументах передаются координаты вместо кривой Безье 3го порядка;
- возвращаемое значение содержит массивы данных вместо кривых Безье 3го порядка.

Класс PathToArray

метод makeDrawCmds:
- в аргументах и в теле метода широко используются массивы данных вместо классов, представляющих сущности.

Класс String2

случаев скрытого нетипизированного доступа нет.


Итак, наша задача на следующем шаге - избавиться от случаев скрытого нетипизированного доступа.
__________________
http://realaxy.com


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