Как использовать _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);
Я пробовал это несколькими другими способами, и вышеупомянутый метод - единственный, который работает так, как он должен. Но это работает! У меня сложилось впечатление, что скобки подсказывают ему искать объект с именем, на которое установлена переменная, а не объект с тем же именем, что и у переменной.