PDA

Просмотр полной версии : Обращение ко всем экземплярам изнутри одного из них


needle
27.11.2009, 11:49
Всем привет! Подскажите пожалуйста. В библиотеке существует мувиклип player. При помощи следующей функции создаются экземпляры на корне:

function load_to_stage(pos){
mc = _root.attachMovie("player", "player_"+pos, pos);
mc._x = 440;
mc._y = 0 + mc._height + pos*40;
mc.id = pos;
}

Внутри каждого мувиклипа присутствует кнопка, которая должна сбрасывать параметры во всех экземплярах:

function clear_all(){
_parent.player_1.main_line.gotoAndStop(1);
_parent.player_1.star._visible=false;
}

естественно, в ручную прописывать каждый плеер как в приведенной функции не хочется. подскажите, как корректно перебрать загруженные на рут плееры и обратиться к их параметрам? спасибо!

lexa2000lexa
27.11.2009, 12:17
Перед тем как приатачить первый плеер, создайте клип в который атачте плееры,
а потом в нем вайлом переберайте все что в нем есть . и производите нужные действия. Надеюсь ясно написамл миханизм.

needle
27.11.2009, 12:28
с механизмом проблем нет. интересует синтаксис.

lexa2000lexa
27.11.2009, 12:50
можно такvar contener:MovieClip = this.createEmptyMovieClip("contener",100)
function load_to_stage(pos){
var mc:MovieClip = contener.attachMovie("player", "player_"+pos, pos);
mc._x = 440;
mc._y = 0 + mc._height + pos*40;
mc.id = pos;
mc.onPress = clear_all;
}

function clear_all(){
for(i in contener){
contener[i].main_line.gotoAndStop(1);
contener[i].star._visible=false;
}
}

DarkChris
27.11.2009, 12:53
Что-то типа такого :)

function clear_all(){
for(var i in _root){
if(typeof(_root[i])=="movieclip" && _root[i]._name.toString().indexOf("player_")!=-1){
_root[i].main_line.gotoAndStop(1);
_root[i].star._visible = false;
}
}
}

это если они в руте

needle
27.11.2009, 13:07
Спасибо большое, функция DarkChris заработала ) И самое главное - понимание получено ) Еще раз - большое спасибо )