Как применить разные классы к разным кадрам во Flash CS5? - PullRequest
1 голос
/ 24 января 2011

Я пишу код в ActionScript 3 и мне нужна помощь с классами.Я хочу, чтобы первый кадр имел свой собственный класс / пакет, и я хочу, чтобы другие кадры использовали другой класс / пакет.Как мне это сделать?

Ответы [ 2 ]

2 голосов
/ 24 января 2011

Не.Это не чистый и не рекомендуемый способ организации кода ActionScript в вашем проекте.Используйте классы и пакеты так, как они были предназначены: для объектно-ориентированного программирования.Фактически, вы должны использовать действия с кадрами, только если у вас есть небольшие задачи, особенно для управления временной шкалой (stop(); и т. Д.), Или для создания или удаления объектов в определенный момент времени.

Если вы хотите, чтобы ваши кадры порождали новое поведение, вместо этого создавайте и / или удаляйте экземпляры классов на сцене - они могут быть прозрачными или заполнять всю стадию, поэтому они будут замечены не пользователями, а вашей программой.будет иметь надлежащую инкапсуляцию.Вы можете прикрепить класс к каждому мувиклипу в своей библиотеке, так что вы можете разместить его в каждом кадре своей временной шкалы и даже редактировать временную шкалу этого мувиклипа, если хотите.

В зависимости от того, что вы решили,Вы должны прочитать об объектно-ориентированном программировании в ActionScript здесь .

1 голос
/ 24 января 2011

Временная шкала в конце дня является подклассом мувиклипа.Каждый кадр является кадром этого мувиклипа, поэтому вы не можете связать класс с каждым кадром.Вы можете использовать один класс и использовать «недокументированный» addFrameScript, чтобы связать метод с каждым кадром.А еще лучше, я бы просто добавил новый MovieClip к каждому кадру со своим уникальным подклассом.Таким образом, базовый класс frame1 будет Frame1MovieClip.as, а базовый класс frame2 будет Frame2MovieClip.as.Если вы хотите, чтобы фреймы разделяли класс, просто растяните этот фрейм на необходимое вам количество фреймов.

           1  2  3  4  5
 layer2   [o]
 layer1      [o         ]

Таким образом, «layer2» будет содержать MovieClip с Frame1MovieClip.as в качестве BaseClass и слоя 1другой базовый класс.

...