Форум Flasher.ru

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

: hr : 27.07.2004 15:07

Вопрос по ООП
 
Друзья, подскажите пожалуйста, как назначить определенному MovieClip свойства и методы некого класса.
Т.е. есть 2 типа мувиклипов в фильме, и для каждого из этих типов хотелось бы иметь методы и свойства упорядоченные в класс.

Допустим,

function Class_A_Clip() {
// тут что-то
}
Class_A_Clip.prototype.Move_method = function() {
// тут метод
};
Class_A_Clip.prototype.Area_method = function() {
// и тут метод
};


// и аналогично второй класс

function Class_B_Clip() {
}
Class_B_Clip.prototype.say_Hi_method = function() {
};
Class_B_Clip.prototype.Kill_method = function() {
};


Так вот теперь, предположим имея на сцене мувик Clip1, хочется что-бы он унаследовал все методы и свойства Class_A_Clip.

Пишу:

Clip.prototype.__proto__ = Class_A_Clip.prototype;

- не работает,
а если:

MovieClip.prototype.__proto__ = Class_A_Clip.prototype;

- работает, однако естественно для всех мувиклипов на сцене.

Как быть?

Nox Noctis 27.07.2004 15:17

либо так:
Class_B_Clip.prototype.__proto__ = Class_A_Clip.prototype;

либо перед заполнением прототипа класса Б:
Class_B_Clip.prototype = new Class_A_Clip();

: hr : 27.07.2004 16:37

Nox , уважаемый, ты не понял. Мне нужно чтобы не
Class_B_Clip унаследовал всё от Class_A_Clip, как ты пишешь

Цитата:

либо так:
Class_B_Clip.prototype.__proto__ = Class_A_Clip.prototype;

либо перед заполнением прототипа класса Б:
Class_B_Clip.prototype = new Class_A_Clip();
, а мувиклип Clip1 имел все те методы и свойства, описанные в Class_A_Clip. Мне хочется применить эти методы к реальному клипу, конкретному объекту класса MovieClip.

Вот так я применяю ко всем:
MovieClip.prototype.__proto__ = Class_A_Clip.prototype;

а мне нужно к определенному! под именем Clip, допустим.

silin 27.07.2004 21:59

A = function(){}
A.prototype=new MovieClip();
A.prototype.someMethod=function(){...}
MovieClip.prototype.addClass=function(c){this.__proto__= c.prototype;}
clip.addClass(A);

: hr : 28.07.2004 12:56

silin, большое спасибо! :)


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

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