PDA

Просмотр полной версии : Использование своих классов


demiurger
11.04.2007, 22:23
Добрый вечер, ребята. (ну и дамы конечно)

Сразу скажу, что совсем зеленый в акшн скрипте.

Возник вопрос следующего характера:
Есть два класса point и polyline
В первом, два отрибута - x и y соответсвенно, определяют кординаты точки. Сохраняю в файл point.as. Во втором классе хочу использовать первый, для этого объявляю атрибутом второго класса private аттрибут, типа первого класса, т.е. точка. Так вот, почему такая конструкция не работает. Если есть пример такой реализации - пожалуйста, приведите.

Если конкретнее, то как в других классах использовать уже существующие?

kmk
11.04.2007, 22:30
class Point {
function Point() { //конструктор ;)
x = 0;
y = 0;
}
var x:Number;
var y:Number;
}


class Polyline {
function Polyline() { //конструктор ;)
point = new Point();
}
private var point:Point;
}

etc
11.04.2007, 22:39
kmk, а права доступа для x, y и конструкторов указывать необязательно? По дефолту оно, конечно, public, но лучше указать. Яснее будет.

kmk
11.04.2007, 22:41
kmk, а права доступа для x, y и конструкторов указывать необязательно? По дефолту оно, конечно, public, но лучше указать. Яснее будет.
я долго думал вписать ли мне геттеры и сетеры или обойтись функциями но решил что и так пойдет. тем более работать будет. ( не правильно но флеш съест ).

etc
11.04.2007, 22:58
Мой пост не был понят. Прочтите ещё раз. Я ничего про геттеры и сеттеры не говорил.

kmk
11.04.2007, 23:01
я все понял и немного утрировал ))

demiurger
11.04.2007, 23:43
Хм....
Большое спасибо.. Я щас дома, но на работе делал что то подобное, и не работало, завтра сравню.

Я знаю про геттеры и сеттеры. Спасибо. Да и наверное лучше объявить конструкторы как паблик...

etc
11.04.2007, 23:44
Конструкторы и геттеры с сеттерами тут ничего общего не имеют. Просто товарищ kmk ввел своими сеттерами в заблуждение, хотя я про них ничего не говорил.

demiurger
12.04.2007, 10:11
Ребята, все работает. Но как то странно. Как только я объявляю геттеры и сеттеры, работать перестает, я не хочу чтоб напрямую был доступ к атрибутам класса.
class Point {
private var __x:Number;
private var __y:Number;

public function point(x:Number, y:Number)
{
__x = x;
__y = y;
}

public function get x():Number {
return __x;
}
public function set x(value:Number):Void {
__x = value;
}

public function get y():Number {
return __y;
}
public function set y(value:Number):Void {
__y = value;
}
}

etc
12.04.2007, 11:33
1. Код нужно оформлять тегами ;
2. У тебя есть метод point, но не объявлен конструктор Point. Код регистрозависим.

demiurger
12.04.2007, 11:49
__etc, огроменное спасибо! Все заработало!

За код извини, я не нашел кнопочки, PHP есть, а вот код не нашел.

Еще раз благодарю

etc
12.04.2007, 11:54
Кнопка кода выглядит как кнопка с решеткой «#».