Проблема: муви клип содержит только один кадр - PullRequest
0 голосов
/ 24 марта 2010

Я новичок во Flash, поэтому начал играть с довольно стандартным примером кода: один слой содержит фрагмент ролика с летающим прямоугольником, другой слой имеет кнопку для управления им. Весь код скрипта находится в файле Main.as. Прямоугольник был назван square1 через окно свойств.

Вот проблема: в конструкторе Main есть строка: square1.stop (); чтобы предотвратить воспроизведение клипа, но это не помогает - он играет. Я знаю, что конструктор срабатывает, потому что в нем есть след («материал»). Код проверяет, что сцена была создана.

Что странного в том, что square1.currentFrame всегда возвращает 1, а square1.totalFrames также возвращает 1. Слой имеет 24 кадра на временной шкале. Я попробовал анимацию всего с двумя ключевыми кадрами, затем преобразовал всю анимацию в кадры - тот же результат. Я имею в виду, вещь летит перед моими глазами, как это может быть 1 кадр ???

Я даже добавил слушателя: square1.addEventListener (Event.ENTER_FRAME, onFrameChange); Событие срабатывает постоянно, то есть кадры меняются, но currentFrame по-прежнему равен 1.

Кроме того, попытался назвать отдельные кадры и использовать square1.gotoAndStop ("begin") и тому подобное. Ничего не помогает Я действительно застрял с этой глупой проблемой.

1 Ответ

0 голосов
/ 24 марта 2010

Ваш прямоугольник (квадрат1) имеет только один кадр. Это просто прямоугольник (без модификаций, двойников и т. Д.). Откройте его из библиотеки и посмотрите на его временную шкалу.

Этот объект помещается на временную шкалу другого мувиклипа (например, «основной»). И только этот клип имеет несколько кадров, но не квадрат1. Вы должны остановить «основной» фрейм, например this.stop (). Или вы можете создать новый MovieClip («movingSquare») с несколькими кадрами, который содержит движущийся квадрат, и поместить его на «главную» сцену. У вас будет развернутый канал сдерживания: «основная сцена» (которая может иметь только один кадр) -> «movingSquare» (несколько кадров с квадратом) -> «square1» (мувикадр с одним кадром) И в этом случае вы должны вызвать «movingSquare.stop ()», чтобы остановить его воспроизведение.

...