![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
|
|||||
|
Регистрация: Apr 2001
Адрес: Moscow
Сообщений: 1,475
|
не проще ли сделать вещатель класса и повесить все мувики на него слушателями?
вот пример вещателя класса: // CONSTRUCTOR
MyClass = function () {
this.constructor.addListener(this);
};
// SET PARENT CLASS
tmp = MyClass.prototype=new MovieClip();
// REGISTER MOVIECLIPS
Object.registerClass("my_mc", MyClass);
// BROADCASTER INITIALIZE
ASBroadcaster.initialize(MyClass);
MyClass.message = function() {
this.broadcastMessage.apply(this, arguments);
};
// SET CLASS FUNCTIONS
tmp.onSetProperty = function() {
var i, obj = arguments[0];
for (i in obj) {this[i] = obj[i];}
this._y = random(300);
};
tmp.count = function() { this.constructor.counter++;};
tmp.getNumberOfBrothers = function() {
this.constructor.counter = 0;
this.constructor.message("count");
return this.constructor.counter;
};
// TEST
_root.attachMovie("my_mc", "my1_mc", 1);
_root.attachMovie("my_mc", "my2_mc", 2);
_root.attachMovie("my_mc", "my3_mc", 3);
_root.attachMovie("my_mc", "my4_mc", 4);
MyClass.message("onSetProperty", {_alpha:50, _x:300});
// trace
trace(_root.my1_mc.getNumberOfBrothers());
trace(MyClass._listeners.length);
_root.my4_mc.removeMovieClip();
trace(MyClass._listeners.length);
trace(_root.my1_mc.getNumberOfBrothers());
this.constructor.message("count"); - вызываем функцию count во всех мувиках класса или так: this.constructor.message("onSetProperty", {_alpha:50, _xscale:80}); - с передачей аргументов. |
|
|||||
|
Регистрация: Dec 2002
Адрес: Живу вот где-то
Сообщений: 493
|
*BitSky*
Это похоже на то, что мне нужно! Только вот не пойму, как мне поставить слухача именно на нужный мувик (последний в массиве). BitSky - может перелопатишь код в исходнике, применительно к твоему варианту??? Спасибо! |
|
|||||
|
Регистрация: Apr 2001
Адрес: Moscow
Сообщений: 1,475
|
- если ты подержишь мою лопату %)
на самом деле не нужно отдельно вычислять слухача, все мувики класса слухачи. просто есть признак по которому ты вычисляешь, кто же у тебя последний. Цитата:
когда каждый ролик отыграет, свое он говорит: var num = this.constructor.last_num++ if (num==this.constructor.count){ trace(this+ " is end") } примерно так |
|
|||||
|
Регистрация: Dec 2002
Адрес: Живу вот где-то
Сообщений: 493
|
BitSky
Оки! Вроде начал врубаться, не силен я покеда в ООП... классы там и тд. Спасибоньки! Буду пробовать твой код! |
|
|||||
|
Регистрация: Apr 2001
Адрес: Moscow
Сообщений: 1,475
|
а я думал, что тв МОНСТЕР
![]() |
|
|||||
|
Регистрация: Apr 2001
Адрес: Moscow
Сообщений: 1,475
|
а я думал, что ты МОНСТЕР
![]() |
![]() |
Часовой пояс GMT +4, время: 05:24. |
|
|
« Предыдущая тема | Следующая тема » |
|
|