Flash: понимание хода программы - PullRequest
0 голосов
/ 09 марта 2012

После прочтения учебника по Flash я все еще не уверен, что именно представляет собой программа в целом:

В частности, у меня есть демонстрационная версия флеш-игры (в стиле Super Mario). В нем у меня есть два вида оружия - простой огонь и большой огненный шар. Я пересмотрел код, чтобы лучше изучить флеш-память [я новичок - примерно с понедельника на этой неделе].

Я видел, что в программе есть переменная, которая отслеживает количество использований, которые я оставил в каждом оружии. Я попытался просмотреть все места, где использовалась эта переменная, но не смог найти, где она влияет на рисунок на экране.

Я даже пытался удалить объявление переменной и затем протестировать ее - чтобы я мог найти все ссылки на переменную - Кстати, любой удобный способ найти все ссылки на переменную / метод / класс [Я использую ADOBE FLASH CS5 0,5]? Кроме того, я попытался изменить начальное значение переменных на «12» и заметил, что при тестировании игры у оружия действительно 12 применений.

Итак, моя проблема: 1. Кажется, эта переменная как-то влияет на рисунок. Тем не менее, я не знаю, как это происходит, поскольку весь найденный мной код, использующий эту переменную, не имеет ничего общего с рисованием. Это все, логика, как

if(var <= 0){
    var--;
} else{
    return false;
}

Откуда это влияние?

  1. Любой способ получить все ссылки на переменную [как в eclipse ctrl + shift + g]?

Большое спасибо.

1 Ответ

1 голос
/ 09 марта 2012

Flash может содержать код на множестве разных вещей.

  • Внешние классы
  • Видеоклипы
  • Рама

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

Я предполагаю, что вы используете AS2 из-за вашей проблемы с поиском кода, а также с тем фактом, что вы сказали, что удалили объявление переменной, и все по-прежнему работало. (AS2 позволяет вам много сойти с рук)

Если вы разблокируете какие-либо слои, которые заблокированы, и выберите все, вы можете найти почти невидимые фильмы, которые выглядят как просто точки. Множество плохих руководств помещают код в невидимые фильмы, подобные этому, чтобы запустить все. Отмените выбор всего, выберите только этот видеоклип и затем нажмите [F9], чтобы открыть окно действий, чтобы увидеть код.

Другой вариант заключается в том, что код находится где-то в мувиклипе. Нажмите на них и посмотрите в окне действий, чтобы увидеть, есть ли там что-нибудь.

Неважно, как это звучит, вы используете плохой пример. Ищите учебники AS3, так как это более оптимизированная версия ActionScript, и она предотвращает множество плохих практик, таких как то, что вы видите.

Учебник по AS3, с которым я только что познакомился


[редактировать]

Для дальнейшего ответа на ваш вопрос поток программ происходит во флэш-виртуальной машине, которая сначала запускает событие onEnterFrame, которое может прослушать любой мувиклип. (В AS2 он будет вызывать onEnterFrame для каждого мувиклипа. Это было отменено в пользу события, поэтому вашему классу не нужно обновлять каждый кадр). Как только это произошло, виртуальная машина выводит все на экран. Для более полного обзора я нашел этот веб-сайт

Ваша проблема звучит так, как будто все содержится во внешних классах. Вот пример

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...