Дострочное пересдача экзамена
|
Адресация
Обращение к экземпляру фильма-символа
Вы помещаете на монтажный стол экземпляр фильма-символа и присваиваете экземпляру имя. Это имя (вместе с указанием отношений с другими монтажными столами) и используется при адресации к нему. Допустим, вы поместили экземпляр фильма-символа на основной монтажный стол и присвоили экземпляру имя alien. Абсолютный путь к этому экземпляру будет выглядеть так:
_root.alien
Этот абсолютный путь вы можете использовать в скрипте на любом монтажном столе проекта для обращения к данному конкретному экземпляру.
Однако для того, чтобы обратиться к этому экземпляру с основного монтажного стола (который является родителем по отношению к этому экземпляру), достаточно указать относительный путь:
alien
Если же мы помещаем тот же экземпляр в другой экземпляр фильма-символа, с именем spaceship, который сам находится на основном монтажном столе, абсолютный путь будет таким:
_root.spaceship.alien
Теперь отношения между корневым монтажным столом и экземпляром alien иные, и для обращения к этому экземпляру с основного монтажного стола нужно указать такой относительный путь:
spaceship.alien
Поскольку экземпляр spaceship теперь является родителем экземпляра alien, то для него относительный путь к фильму-символу alien будет:
alien
В следующем упражнении мы потренируемся в адресации к определенным экземплярам фильмов-символов с помощью их имен и отношения к монтажному столу, содержащему скрипт.
- Откройте файл movieclipTarget1.fla из папки Lesson03/Assets.
Файл выглядит таким, как мы его оставили в конце предыдущего упражнения. Мы дадим имена находящимся на сцене экземплярам, чтобы затем к ним можно было обратиться в скриптах.
- Открыв инспектор Параметры (Property), выделяйте по очереди каждый экземпляр на сцене и присваивайте ему имя, соответствующее тому, что этот экземпляр при загрузке помещает в переменную words.
Например, если вы выделили экземпляр, который при загрузке присваивает переменной words значение "I’m Derek", то этому экземпляру следует дать имя Derek. То же самое и для других экземпляров, присутствующих на сцене.
- Двойным щелчком откройте один из экземпляров для редактирования на месте. На его монтажном столе находится экземпляр фильма-символа Hatfield Child. Выделите этот экземпляр и присвойте ему (в инспекторе Параметры) имя myKid. Вернитесь на основной монтажный стол.
Теперь у нас шесть именованных экземпляров фильмов-символов, на которые мы можем указать с любого монтажного стола. Абсолютные пути к ним таковы:
_root.Derek _root.derek.myKid _root.Kathy _root.Kathy.myKid _root.Ashlie _root.Ashlie.myKid
- Выделите экземпляр с именем Kathy и добавьте следующий скрипт к уже имеющемуся в панели Действия (после строки this._rotation = this._rotation + .5;):
myKid._rotation = myKid._rotation + 20; _root.Derek.myKid._xscale = _root.Derek.myKid._xscale + .5; _root.Derek.myKid._yscale = _root.Derek.myKid._yscale + .5; _root.Ashlie.myKid._y = _root.Ashlie.myKid._y - .5;
Эти строки мы вставили в обработчик события mouseMove, значит, они будут выполняться при каждом перемещении мыши. Поскольку скрипт присоединен к экземпляру с именем Kathy, в первом действии использован относительный путь для указания на экземпляр myKid, находящийся внутри экземпляра Kathy. При каждом перемещении мыши свойство "поворот" этого экземпляра myKid увеличивается на 20. В двух следующих действиях используется абсолютный путь, указывающий на экземпляр myKid внутри экземпляра Derek. Действия масштабируют экземпляр – он будет увеличиваться на 0,5 процента при каждом перемещении мыши. В последнем действии также используется абсолютный путь, на сей раз указывающий на экземпляр myKid в экземпляре Ashlie. При каждом перемещении мыши этот экземпляр должен перемещаться вверх на 0,5 пикселя.
- Выполните команду Управление > Проверить фильм (Control > Test Movie).
Попробуйте перемещать мышь – экземпляры фильма-символа myKid, к которым мы обратились, будут выполнять запрограммированные нами действия.
- Закройте окно тестирования фильма и вернитесь в среду разработки. Сохраните файл как movieclipTarget2.fla.
Упражнение закончено, как и наша работа с этим файлом.