Просмотр полной версии : Не происходит обращения к имени клипа из массива
JokerDen
14.02.2011, 22:57
Собственно, сабж.
var arr:Array = [];
//блаблабла, записываю в массив
arr[a].les_mc._y += 0.5;
трэйсил arr[a] - выдает нужное слово, но в контексте не происходит обращения к мувиклипу. При прямом обращении к клипу, а не из массива, всё также работает.
Маловато контекста.
Что такое arr[a], например ?
JokerDen
14.02.2011, 23:13
Массив, в элемент которого я записывал имя клипа, который я в дальнейшем хочу вызвать.
arr[a].les_mc._y += 0.5
Ваш клип, являющийся элементом массива, - контейнер для "les_mc"?
JokerDen
14.02.2011, 23:18
Эээ, я не знаю, что такое контейнер, но "les_mc" - это клип внутри клипа под названием, хранящимся в элементе 'a' массива 'arr'.
Эм, что я вашем понимании "под названием, хранящимся..."? Элемент массива - сам клип или строка с названием клипа?
Тогда trace(arr[a]) должен выдать не "слово", а ссылку на этот мувик.
Сделайте
trace(arr[a]);
trace(arr[a].les_mc);
и посмотрите, что у вас выводится, ну и если непонятно будет, сообщите здесь.
JokerDen
14.02.2011, 23:24
Строка с названием клипа. Как мне ее использовать для обращения?
Если у вас trace(arr[a]) выводит "название", то есть инстанс-нейм, то нужно его превратить в ссылку на мувик, например, если дело на _root происходит, то
_root[arr[a]].les_mc
JokerDen
14.02.2011, 23:34
У меня всё это происходит внутри другого клипа, кажется такой способ ведь не работает?
_this[arr[a]].les_mc
Да, прошу прощения за свое нубство.
Как то всё не так.
Чтобы сделать массив мувиклипов, сначала объявляем массив:
var my_mc:Array = new Array();
Затем создаём в элементе массива мувиклип:
my_mc[i] = new Movie Clip();
my_mc[i]._y += 0,5;
JokerDen
14.02.2011, 23:48
А как мне запихать клип в массив, если использую duplicateMovieClip? А то, в принципе, выглядит удобнее обращаться к элементу массива, а не коряво, беря из массива имя.
Как-то так:
mc.duplicateMovieClip("mc"+i, _root.getNextHighestDepth());
arr[i] = _root["mc"+i];
duplicateMovieClip - метод класса Movie Clip. Если у вас элемент в массиве класса Movie Clip, соответственно:
my_mc[i].duplicateMovieClip()
JokerDen
15.02.2011, 00:23
Блин, я просто коряво всё объясняю, извините уж.
Но суть такова. Если клип находится в корне, то обращение к нему из строки происходит
_root["mc"+i];
А как мне к нему обратиться, если он у меня не в _root, а внутри другого клипа? Но при том, использовать такой же строковый адрес.
И да, в моем случае код расположен как раз таки внутри этого клипа, то есть мне фактически нужен _this[строковое имя], но записанное в правильной форме, чтобы было понятно, что это я обращаюсь к клипу.
Добавлено через 10 минут
Ой, всё, разобрался, просто надо было this без подчеркивания.
Всем огромное спасибо, обожаю этот форум :3
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.