![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
|
|||||
|
Регистрация: Mar 2004
Адрес: Moscow
Сообщений: 115
|
Можно ли сделать массив из элементов класса?
|
|
|||||
|
[++]
|
1) В смысле из экземпляров?
2) Конечно можно, почему нет. 3) Ты не пробовал попробовать? |
|
|||||
|
Регистрация: Mar 2004
Адрес: Moscow
Сообщений: 115
|
я создала класс line, в него заносятся координаты начальной и конечной точки, и в нем есть разные методы, например посчитать расстояние от некой точки до этой прямой.
потом я создаю элемент этого класса, например new_line: line = new line(x,y); - что-то в этом духе. но когда я пытаюсь запихнуть этот элемент в массив, флеш мне выдает ошибку. Такая запись считается неверной: lines = new Array(); lines[1] = new_line; или lines[1] = new line(x,y); //естественно вместо х и у какие-то числа Что я делаю неправильно? |
|
|||||
|
давай исходник
|
|
|||||
|
Регистрация: Mar 2004
Адрес: Moscow
Сообщений: 115
|
это трудно... исходник на работе, к тому же там довольно много функций, так что так просто не разберешься.
если кратко, нужно сделать простенькую программу по геометрии для школьников: можно рисовать точки, прямые, круги. Новая линия - новый объект, где хранятся данные о начальной и конечной точке. Данные о всех нарисованных линиях записаны в массив. Но мне хотелось бы реализовать это с помощью класса. Я создала новый класс line, которому эти координаты передаются как переметры, и в котором есть различные функции - типа нахождения угла, нахождения расстояния до точки и так далее. И мне хотелось бы сделать, чтобы каждая линия представлялась, как некий экземпляр класса со своими параметрами, а все эти экземпляры засунуть в массив. Класс я сделала, все работает, но когда я пытаюсь создать массив из экземпляров, мне выдает постоянно ошибку. Вот и хотелось бы понять - это я делаю что-то неправильно или это принципиально невозможно? ЗЫ. с классами работаю в первый раз... |
|
|||||
|
don't panic!
Регистрация: Aug 2001
Сообщений: 4,121
|
lines[1] = new line(x,y);
эта запись ошибки не вызывает :) зуб даю :) только это называется не элемент класса а экземпляр класса |
|
|||||
|
Регистрация: Mar 2004
Адрес: Moscow
Сообщений: 115
|
to Nox Noctis
Давай зуб, эта запись не работает ![]() Если написать так: lines[i] = new line(x, y); trace(lines[i].angle()); var line_1:line = new line(x, y); trace(line_1.angle()); То в первом случае все время выдает undefined, а для line_1 все считает нормально. То же самое для записи: lines.push(new line(x, y)); trace(lines[i].angle()); Естественно, x, y и i определены до этого. |
|
|||||
|
function line(x,y){ this.angle=Math.atan(x/y);}
lines=new Array(); lines.push(new line(1, 2)); trace(lines[0].angle);//0.463647609000806 lines[1] = new line(2, 1); trace(lines[1].angle);//1.10714871779409 |
|
|||||
|
don't panic!
Регистрация: Aug 2001
Сообщений: 4,121
|
Цитата:
silin, речь о АС2 и импортированном классе, я так понял |
![]() |
Часовой пояс GMT +4, время: 03:16. |
|
|
« Предыдущая тема | Следующая тема » |
|
|