Вход

Просмотр полной версии : работа с массивом в ООП


ktotam
29.05.2007, 01:38
Привет! Вот так проблема у меня, подскажите, что не так? Есть класс "My_class.as", прикрепляю в библиотеке к символу "simbol" наследование свойств класса, при нажатии на символ в массив добавляю новый элемент, всё отлично, но если вызываю еще один символ из библиотеки, то он работает с тем же массивом что и первый, то есть массив создается не для каждого объекта класса, а общий на всех. Как быть?
//My_class.as
class My_class extends MovieClip {
public var My_Array:Array = new Array();
public function My_class() {
this.onPress = function():Void {
this.My_Array.push("new Array"+this.My_Array.length);
trace(this.My_Array.length);
trace(this.My_Array[this.My_Array.length-1]);
};
}
}
//FLA.fla
attachMovie("simbol","simbol1",1)
simbol1._x=300;
simbol1._y=200;
attachMovie("simbol","simbol2",2)
simbol2._x=100;
simbol2._y=200;

iNils
29.05.2007, 01:56
При описания свойства, надо задать только его тип.
public var My_Array:Array = null;
А создание нового массива надо делать в теле конструктора класса.
public function My_class() {
My_Array = new Array();
...

Кстати, только класс может начинаться с заглавной, а названия методов и свойств пишут с прописной. То есть не My_Array, а my_Array.

etc
29.05.2007, 01:58
Да и подчеркивания тоже лишние.