Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   ООП в As (http://www.flasher.ru/forum/showthread.php?t=46682)

Fireworm 10.07.2003 21:16

ООП в As
 
Хочу сделать следующее: описать свой класс, со своими членами и функциями, а затем создать массив объектов этого класса. Что-то вроде этого
Код:

ar = new Array();
for (i=0; i< n; i++){
  ar[i] = new MyClass();
}

Позволяет ли объектная модель AS делать подобные вещи, и если да, то как?

Спасибо.

iLoveYou 10.07.2003 23:26

а почему бы и нет?
как сделать? вот как ты сам написал - так и сделать :) в чем сложности-то?

C2Plus 11.07.2003 02:37

function MyClass(){
this.myProp = 1;
this.myMethod = function (){
}
}


базовое описание класса.

более рациональное создание методов:

function MyClass(){
this.myProp = 1;
}

MyClass.prototype.myMethod = function(){
}

iLoveYou 11.07.2003 11:44

Цитата:

Оригинал написал(а) C2Plus

более рациональное создание методов:
MyClass.prototype.myMethod = function(){
}

:) Колин Мук в своей последней книженции этот "способ" вообще называет единственно верным, а все остальные возможные - обусловленными несовершенством AS.

2Fireworm для работы с массивом, например:
Код:

function MyClass(a) {
        this.a = a;
        this.b = "asd";
}
MyClass.prototype.getA = function() {
        _root.a = this.a;
};
//*****************************
var i;
ar = new Array();
for (i=0; i<5; i++) {
        ar[i] = new MyClass(i);
}
ar[3].getA();
trace(a);
trace(ar[3].b);

:)

Fireworm 11.07.2003 11:54

Тогда, расскажите пожалуйста (прочитать негде, ибо книжек нет, а в хелпе это как-то туманно описанно), для чего при определении метода использовать prototype, и почему не лучше вместо
Код:

MyClass.prototype.getA = function() {
        _root.a = this.a;
};

написать
Код:

MyClass.prototype.getA = function() {
        return this.a;
};

А затем использовать
Код:

mm = new MyClass('ss');
trace(mm.getA)

?

И еще вопрос, получается что класс описывается, при описании конструктора? Т.е. не надо как-то описывать сам тип MyClass?

iLoveYou 11.07.2003 12:09

Цитата:

Оригинал написал(а) Fireworm
почему не лучше вместо
Код:

MyClass.prototype.getA = function() {
        _root.a = this.a;
};

написать
Код:

MyClass.prototype.getA = function() {
        return this.a;
};


да неее, дружище. я это для примера только написал. просто недавно на форуме про подобную фигню спрашивали - вот в мозгу и отпечаталось. :) просто пример метода - не бери в голову :)

iLoveYou 11.07.2003 12:27

про ООП
 
на русском:
http://projects2003.by.ru/web2/action/ch12_05.htm
http://www.vmstudio.com/arch/oopF5_ru.zip
на английском:
http://www.macromedia.com/devnet/mx/...asdg2_ch12.pdf
на флашере:
http://www.flasher.ru/forum/showthre...ight=prototype
http://www.flasher.ru/forum/showthre...ight=prototype

Fireworm 11.07.2003 12:30

Огромное спасибо!!! То, что нужно!!!

iLoveYou 11.07.2003 12:37

успехов :)


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

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