КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Использование локальных переменных
Ввод событий для кнопки выбора Организуйте событие для кнопки Pick Planets, выполнив следующее упражнение. 1. Введите следующий код непосредственно перед последней круглой скобкой Построение пользовательских интерфейсов
on pbt_pickPlanet picked aPlanet do ( -- Установить радиус выбранной планеты в счетчике Planet Radius spn_planetRadius.value = aPlanet.radius -- Установить радиус орбиты планеты в счетчике Orbit Radius pOrbit = aPlanet.pos.controller.path spn_orbitRadius.value = pOrbit.radius ) Если щелкнуть на кнопке Pick Planet, выбранный объект сохранится в локальной переменной aPlanet. Имя выбранного объекта теперь автоматически отображается в надписи кнопки выбора Pick Planet. Примечание. Программирующие на MAXScript, часто пользуются переменной obj для обозначения того факта, что объект выбран. Имя переменной obj не является ни ключевым словом, ни любым другим именем специальной переменной. Это имя упоминается здесь лишь потому, что оно часто встречается в сценариях. 2. Вычислите код сценария. 3. Щелкните сначала на кнопке Pick Planet, а затем на самой планете. Независимо от того, какая планета выбрана, в поле счетчика Orbit Radius появляется значение 10,0, хотя радиус орбиты может достигать и 10. Напомним, что диапазон значений в счетчике ограничивается верхним пределом 10. Для правильного отображения числовых значений в счетчике необходимо изменить этот предел, 4. Замените строку spn_orbitRadius следующей строкой кода: spinner spn_orbitRadius "Orbit Radius " range: [0,100,0] Вычислите код сценария. 5. Щелкните на кнопке Pick Planet и выберите планету. В поле счетчика Orbit Radius появится правильно отображаемое значение радиуса орбиты. В следующем упражнении вам предстоит ввести обработчики событий, изменяющие радиус выбранной планеты и ее орбиты в результате изменений в счетчиках Planet Radius и Orbit Radius. 1. Введите следующий фрагмент кода после введенного последним обработчика событий: on spn_planetRadius changed value do() Данное событие возникает всякий раз, когда пользователь изменяет значение свойства.value в переменной счетчика, вводя новое значение с клавиатуры или настраивая счетчик с помощью мыши. Но дело в том, что при вызове данного обработчика событий требуется изменить радиус объекта, выбранного в предыдущем обработчике событий, а имя этого объекта хранится в переменной aPlanet, которая является локальной для данного блока кода. Следовательно, для того чтобы использовать Глава 2 эту переменную в данном обработчике событий, нужно каким-то образом сделать ее доступной вне области действия предыдущего обработчика событий. Для этой цели необходимо объявить переменную pPlanet вне области 2. Введите следующую строку кода перед обработчиком событий pbt_pickPlanet: 3. Введите в начале кода обработчика событий pbt_pickPlanet следующую pPlanet = aPlanet В этой строке значение переменной pPlanet устанавливается в соответст- 4. Введите внутри обработчика событий spn_planetRadius следующую pPlanet.radius = spn_planetRadius.value on pbt_pickPlanet picked aPlanet do ( pPlanet = aPlanet -- Установить радиус выбранной планеты в счетчике Planet Radius spn_planetRadius.value = aPlanet.radius -- Установить радиус орбиты планеты в счетчике Orbit Radius pOrbit = aPlanet.pos.controller.path spn_orbitRadius.value = pOrbit.radius ) ) on spn_planetRadius changed value do pPlanet.radius = spn_planetRadius.value ) 5. Вычислите код сценария. 6. Щелкните сначала на кнопке PickPlanet, а затем на планете. 7. Измените значение в счетчике PlanetRadius. Радиус планеты соответственно изменится. Сделайте то же самое для орбиты планеты. И в этом случае возникнет аналогичная проблема с переменными, поскольку переменная pOrbit является локальной для обработчика событий pbt_pickPlanet. Для того чтобы 8. Введите следующую строку кода после строки объявления локальной переменной pPlanet: local pOrbit Построение пользовательских интерфейсов 9. Введите следующий фрагмент кода после введенного последним обработчика событий: on spn_orbitRadius changed value do ( pOrbit.radius = spn_orbitRadius.value ) 10. Вычислите код сценария. 11. Щелкните сначала на кнопке PickPlanet, а затем на планете. 12. Измените значение в счетчике OrbitRadius. Радиус орбиты планеты соответственно изменится.
Дата добавления: 2014-10-15; Просмотров: 487; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |