PDA

Просмотр полной версии : Как управлять несколькими клипами, массив?


Gary
11.07.2003, 16:04
Привет! Глупый вопрос, но в хелпе не нашел, и по конфе тоже:
Мне надо из NN(среди них и динамически созданные) количества клипов управлять только несколькими, скажем менять им альфу
Из них пробую сформировать массив и им управлять, но не выходит. Как это сделать? Туплю к сожалению :(
Спасибо, мастера :)

llllllllll
11.07.2003, 17:07
Вобщем это уже усе есть :)
Во флеше это реализвано следующим образом ...

MovieClip.prototype.setX = function(x){
this._x = x;
}

obj = new Object();
ASbroadcaster.initialize(obj);
obj.addListener(mc1);
obj.addListener(mc2);
obj.addListener(mc3);
...
obj.addListener(mcN);

this.onMouseDown = function(){
obj.broadCastMessage("setX",random(300))
}


... опечаталси :)

YuriiZelenev
11.07.2003, 17:07
izpolzuy
["my_mc"+n].
(gde n - nomer)
vot prostoi primer
while (i<30) {
i++, j += 20, mc_proto.duplicateMovieClip(["mc_p"+i], i);
_root["mc_p"+i]._x = _root["mc_p"+i]._x+j;}

Gary
11.07.2003, 18:49
из упрямства :), все-таки ведь можно же (ну точно чувствую это просто) создать новое множество из по-разному наименованных хлипов и вот им и управлять.
Вариант с _proto - да, эх не дошел все до него, ведь давно глаз цепляет и listener тоже.
Вариант с элементами массива активно использую - примитивно если - то строю меню. Но там ведь одного корня имена, если так можно сказать. Поэтому в этом не подходит.
Меня просто заматывает писать для каждого одинаковую процедуру, поэтому и был вопрос. Но как бы повторюсь созадать из разных клипов управляемое сообщество ? Через централизованный код, не добавляя ничего в каждый клип по отдельности через прото дажею
Спасибо реально помогает ваш вариант...

Gary
14.07.2003, 14:31
Ответ на мной же поставленный вопрос, как я его решил 
Положим, я имею два клипа в _root – “w” и “q”. В них в свою очередь имеем по несколько клипов:
в клипе «q» лежат клипы «qq» и «qqq»
в клипе «w» – «ww» и «www»
мне, скажем, надо их вращать и двигать одновременно.
Я пишу такой код в _root:

MyA= [q.qq,q.qqq,w.ww]
for(i=1;i<=MyA.length;i++){
MyA[i-1].onEnterFrame=function(){
this._x-=3
this._rotation++}}

это мне позволило через создание массива из клипов, принадлежащих разным клипам- родителям, сделать доступными для управления вложенные мувики. Клип “www” вложенный в клип “w” естественно не подвержен командам.