Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Обращение ко всем экземплярам изнутри одного из них (http://www.flasher.ru/forum/showthread.php?t=133105)

needle 27.11.2009 11:49

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

Код AS1/AS2:

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;
        }

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

Код AS1/AS2:

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

можно так
Код AS1/AS2:

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

Что-то типа такого :)
Код AS1/AS2:

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 заработала ) И самое главное - понимание получено ) Еще раз - большое спасибо )


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

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