Как использовать _root и this[] в одной строке?

Вот кусок кода, который работает, когда он находится на основной временной шкале:

var DysonTarget:String = "S"+(random(40)+1);
this[DysonTarget].MyType = "Dyson Sphere";
this[DysonTarget].gotoAndStop(this[DysonTarget].MyType);

Он выбирает число от 1 до 40, добавляет S перед ним и входит в один из сорока видеоклипов на главной сцене с именами экземпляров S1, S2.,, S40 и т. Д. Затем он отобразит изображение в выбранном клипе. Но чтобы это действительно работало так, как я хочу, я должен поместить приведенный выше код в фрагмент ролика. Итак, я попробовал это после объявления моей переменной на главной сцене:

_root.this[DysonTarget].MyType = "Dyson Sphere";
_root.this[DysonTarget].gotoAndStop(this[DysonTarget].MyType);

Он не скомпилировался, сообщение об ошибке гласило: "Ожидается имя поля после". " оператор _parent вернул то же сообщение. С _level0 не сработало вообще, а размещение _root и _parent внутри скобки тоже не сработало. Я не смог найти никакого ответа в Интернете, потому что пытался набрать "this" в поиске слишком расплывчато, чтобы вернуть ответ о фактической команде.

,,.Помоги мне:(

1 ответ

Мой друг, который является разработчиком программного обеспечения, помог мне в этом. Вот что мы выяснили:

Сначала вы объявляете переменную DysonTarget на основной временной шкале:

var DysonTarget:String = "S" + (random(40)+1);

Затем внутри мувиклипа используйте это:

_level0[DysonTarget].MyType = "Dyson Sphere';
_level0[_level0.DysonTarget].gotoAndStop(_level0[_level0.DysonTarget].MyType);

Я пробовал это несколькими другими способами, и вышеупомянутый метод - единственный, который работает так, как он должен. Но это работает! У меня сложилось впечатление, что скобки подсказывают ему искать объект с именем, на которое установлена ​​переменная, а не объект с тем же именем, что и у переменной.

Другие вопросы по тегам