2012-03-09 2 views
0

После прочтения учебника Flash, я до сих пор не уверен, что именно это поток программы в целом:Вспышка: понимание программы потока

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

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

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

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

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

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

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

спасибо.

ответ

1

Вспышка может иметь код для различных вещей.

  • Внешних классы
  • Мувиклипы
  • Frames

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

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

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

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

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

An AS3 tutorial I just came accross


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

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

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

+0

Когда я удалил объявление - все не сработало. Тем не менее, все ошибки, которые я получил там, где «логический» материал, а не какая-либо команда рисования. Кстати, это AS3. – user967710

+0

Ах! Хорошо, теперь мы куда-то. Во вспышке нет команды «ничьей». Все делается на OnEnterFrame, и все вступает в силу немедленно. Невозможно создать другие потоки, есть только цикл рисования. Единственное, что может произойти асинхронно, - это загрузить изображения, но Flash vm позаботится об этом. Таким образом, в основном, если вы измените movieclip.x на 20 .. вы ACTUALLY переместили клип, и он будет нарисован как таковой. – BoredAndroidDeveloper

+0

Одна вещь, которую вы можете проверить, - это войти в библиотеку и получить свойства в мувиклипе. Если у него есть класс, вам нужно искать файл, заканчивающийся на «.as». Вероятно, у вас будет код, который вы ищете – BoredAndroidDeveloper

Смежные вопросы