AS3 - кадр внутри фрагмента ролика внутри фрагмента ролика?

это может не иметь особого смысла, но мы идем. У меня есть фрагмент ролика (Player), и внутри него есть несколько кадров, содержащих фрагменты ролика. Внутри них находится анимационная последовательность. Я хочу поиграть в какие-то на действиях в AS3. Вот так вот. Кадр> Player (MovieClip)> Frame ... Frame> playerDownBlock (MovieClip)> Frame ... Кадр. Я хочу воспроизвести последние кадры в финальных видеоклипах, если смогу. Это возможно?

Вот моя установка.

Макет / Путь фрагментов ролика

Img1

Img3

Img4

Я попытался сделать это с помощью этой строки.

Player.playerDownBlock.gotoAndPlay("playerDownBlock");
// Or
Player.gotoAndPlay("playerDownBlock");

Ничего из этого не работает, и я даже не знаю, смогу ли я это сделать. Любая помощь была бы фантастической!


person Kyle93    schedule 10.01.2014    source источник
comment
Где находится ваш ActionScript?   -  person Doppio    schedule 10.01.2014
comment
Внутренний файл на раме. Щелкните правой кнопкой мыши ›действия в собственном фрейме   -  person Kyle93    schedule 13.01.2014


Ответы (2)


Все, что вам нужно сделать, это:

mc.mc2.play();

«Mc» - это имя экземпляра первого внешнего фрагмента ролика, а «mc2» - имя экземпляра внутреннего фрагмента ролика.

person DrakeTruber    schedule 13.01.2014
comment
Это остановило бы его после того, как в него сыграли один раз? Или это будет петля? - person Kyle93; 14.01.2014
comment
всякий раз, когда точка воспроизведения достигает этого кадра и доходит до этого кода, она всегда будет воспроизводиться. Если вы хотите перейти к определенному кадру внутри мувиклипа внутри мувиклипа, просто напишите: mc.mc2.gotoAndPlay (номер кадра); - person DrakeTruber; 14.01.2014
comment
есть еще вопросы, с которыми вы сталкиваетесь? - person DrakeTruber; 14.01.2014
comment
Если бы я сделал play (), мог бы я добавить какой-нибудь сценарий действия в последний кадр, говоря stop (); ? - person Kyle93; 14.01.2014
comment
Ага. Когда компилятор достигает вашего кода play (); или stop ();, он всегда будет воспроизводиться или останавливаться. Похоже, вы новичок во Flash. Я очень рекомендую эту книгу: Learning Flash AS3. Это отличный способ изучить все основы Flash. - person DrakeTruber; 15.01.2014
comment
Хорошо, спасибо, я думаю, у меня есть идея. Я посмотрю в эту книгу - person Kyle93; 15.01.2014
comment
У меня все еще есть проблема с этим. Когда я ссылаюсь на этот фрагмент ролика, должен ли я использовать имя экземпляра или только фактическое имя фрагмента ролика? - person Kyle93; 15.01.2014
comment
Вы поднимаете хороший вопрос, Кайл. Думайте о названии мувиклипа больше как об имени самого мувиклипа, в то время как имя экземпляра относится к конкретному экземпляру этого мувиклипа. Итак, в ответе, который я дал выше, имя первого экземпляра Movie Clip - mc, а второго экземпляра Movie Clip - mc2. - person DrakeTruber; 16.01.2014

Простой. gotoAndPlay может иметь номер кадра или метку в качестве параметра. Вы используете ярлык:

Player.playerDownBlock.gotoAndPlay("playerDownBlock");

... "playerDownBlock" (просто замените последний бит номером кадра):

Player.playerDownBlock.gotoAndPlay(25);  // or whatever

... или дайте этому кадру метку на шкале времени и используйте ее вместо числа.

person DigiWongaDude    schedule 11.01.2014
comment
Я установил для них метку кадра, а не использовал числа. Разве это не был бы тот же результат? - person Kyle93; 13.01.2014
comment
Да, вы бы получили тот же результат. Единственная разница в том, что вы вызываете фрейм по метке, а не по номеру фрейма. - person DrakeTruber; 14.01.2014
comment
Похоже, вы добавили метки в Player, но не добавили меток для movieClip playerDownBlock. На данный момент вам все еще нужно использовать номера кадров для нацеливания на кадры в playerDownBlock. Помните, playerDownBlock находится «внутри» Player в списке отображения. - person DigiWongaDude; 15.01.2014
comment
Возьмите третью этикетку на изображении выше. Использование Player.gotoAndPlay (‹label3›) будет работать прямо сейчас. Попробуй. Поместите стоп (); где бы вы ни хотели заморозить временную шкалу - по умолчанию Flash всегда зацикливается на неопределенное время. Если вы не хотите, чтобы повсюду было много остановок, попробуйте вместо этого использовать gotoAndStop (). - person DigiWongaDude; 15.01.2014