PDA

Просмотр полной версии : Присвоить акции продуплицированному клипу! Можно ль?


RFMitrio
08.11.2001, 19:16
Суть проблемы слкедующая. Есть мувиклип. Я его дуплицирую ( или аттачу, неважно ), например, в количестве 100 экземпляров. Есть ли способ ( думаю нет, но могу не знать :) ) сделать так, чтобы, допустим, onKeyUp для каждого (!!!) из этих 100 мувиклипов делались СВОИ действия, зависящие от имени данного мувиклипа.
----
НЕ ИНТЕРЕСНЫ СЛЕДУЮЩИЕ ПРЕДЛОЖЕНИЯ В ВИДУ СВОЕЙ ОЧЕВИДНОСТИ: 1. вставить в эти мувики по клипу, например, невидимому, который будет выполнять функцию в зависимости от имени _parent. 2. всякие там 2-хкадровые лупы для замены onEnterFrame.

gOloVasTicK '~
08.11.2001, 21:42
onClipEvent (keyUp) {
_parent.func(Key.getCode(), _name);
}

В функции и описывай действия :)

APM
08.11.2001, 21:44
А как насчет таких "очевидных" вещей как выполнение функции в зависимости от имени мувика (movik_n._name)? Или например в каждом или только в требуемых мувиках прописывать требуемую функцию. И вызывать ее не зависимо есть она или ее в данной копии в принципе нет?

RFMitrio
09.11.2001, 14:12
2gOloVasTicK '~: Я про это и писал :) , но это слишком просто и очевидно. А вот есть ли другой способ?
2ATM: Вызывать функцию надо не извне, а из самого мувика. Оптимизация требует распараллеливание процесса выполнения скрипта, то есть нельзя перебирать все имена мувиков в цикле и делать с ними действия.
Вот и интересно - есть ли способ динамически приписать акции к мувику или к фрейму?

Koxa
09.11.2001, 15:35
Может сделать в мувике такой обработчик:
onClipEvent (keyUp) {
virtFunc(Key.getCode());
}
А каждому экземпляру мувика эту функцию присвоить свою:
MovieClip1.virtFunc=function(keyCode){
...действия для 1-го...
}
MovieClip2.virtFunc=function(keyCode){
...действия для 2-го...
}
ну и т.д.
я, честно говоря, так не пробовал, но может сработает
если сработает, напиши, плиз

vol
09.11.2001, 16:22
Делатся это весьма незатейливо. В моем примере я продублировал 5 мувиков со стандартной кнопкой с именами mu1...mu5. Затем для каждой из них написал обработчики событий - функции f1...f5.
Для первой самой кнопки, которая дублируется - пишем обращение к функции:

on (release) {
nm=this._name;
n=nm.substr(2,1);
callFunction="f"+n;
_root[callFunction]();
}

Собственно, и все дела. Каждая кнопка обрабатывает свое событие (свою функцию).
Исходник вкладываю.

RFMitrio
09.11.2001, 16:35
Спасибо, народ! Все равно это немного не то, но в процессе обсуждения узнал много интересного!

vol
09.11.2001, 16:44
Ну, замени онрелиз на онклипевент, что от этого изменится по существу? Тебе ведь нужна была обработка события по имени - так она и будет.

[subway]design
09.11.2001, 16:56
В общем есть кул функция eval();
Дльше делайте что хотите, а за примеры спасибо!

RFMitrio
09.11.2001, 17:21
2vol: Главное, что то же самое я и говорил! Только внутрь мувика вставляем клип и функцию вызываем относительно _parent._name.
А я просто думал, что может существовать некая функция типа setFun(movieClipName, function) :) :) , например недокументированная.
И еще подвопрос: можно ли получить имя мувиклиипа вместе с абсолютным путем ( непросто _name=mc, а _root.mc1....mc )?

=LJ=
09.11.2001, 17:45
вроде бы свойство клипа _target это делает, если я тебя правильно понял и мы об одном говорим.