Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   работа с массивом в ООП (http://www.flasher.ru/forum/showthread.php?t=96330)

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

Да и подчеркивания тоже лишние.


Часовой пояс GMT +4, время: 04:05.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.