КАТЕГОРИИ: Архитектура-(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) |
Автоматическое удаление диалоговых окон
Точная настройка пользовательского интерфейса В поле счетчика NumberofPlanets отображается число с плавающей точкой в пределах от 0 до 10. Это стандартный диапазон значений для всех счетчиков. Однако для данного счетчика больше подходит диапазон целых чисел от 1 до 10. 1. Введите следующий код в конце строки spinner spn_num Planets: type:#integer range: [1,10,3] Теперь эта строка кода должна иметь следующий вид: spinner spn_numPlanets "Number of Planets" type:#integer range: [1,10,3] Данная строка кода предписывает отображать в счетчике Number of Planetsтолько целые числа в пределах от 1 до 10, причем по умолчанию отображается значение 3. 2. Вычислите код сценария. 3. Измените значение в счетчике Number of Planets. По умолчанию в этом счетчике отображается значение 3, которое может изменяться лишь от 1 до 10. В версии 3dsMax 7 появилось новое свойство элемента управления pickButton, позволяющее автоматически отображать имя выбранного объекта в надписи кнопки выбора. Ранее это приходилось делать вручную. Построение пользовательских интерфейсов Итак, дополните строки кода для отображения кнопки выбора следующим ключевым параметром: autoDisplay: true В данный момент открыто несколько диалоговых окон Solar System (Солнечная система). При каждом вычислении кода сценария появляется новое окно данного типа, а старые не закрываются. Для того чтобы закрыть автоматически любые открытые ранее варианты диалогового окна, когда приходится в очередной раз вычислять код сценария, достаточно ввести в его начале следующий код: destroyDialog ssRoll Но при вычислении этой строки кода может возникнуть ошибка, если открытое диалоговое окно ssRoll отсутствует. Следовательно, диалоговое окно ssRoll нужно удалить в сценарии, если оно существует, и ничего не предпринимать, если оно отсутствует. Для этого в начале сценария можно ввести следующий фрагмент кода: if ((ssRoll!= undefined) and (ssRoll.isdisplayed)) do (destroyDialog ssRoll) В этом коде сначала проверяется тот факт, что диалоговое окно ssRoll определено. Если затем обнаруживается, что данное окно отображается, оно удаляется (т.е. закрывается). Следует иметь в виду, что для удаления диалогового окна должны выполняться оба условия, т.е. результат их проверки должен быть истинным (true). Если же не выполняется хотя бы одно из этих условий, т.е. результат его проверки оказывается ложным (false), ничего не происходит. Примечание. Приведенный выше условный оператор является относительно новым и применяется благодаря внедрению в версии 3dsMax 7 свойства свитков, называемого.isdisplayed. Данное свойство возвращает логическое значение true, если свиток отображается (или виден); в противном случае оно возвращает логическое значение false. В предыдущем издании книги для достижения того же результата в сценарии применялось следующее действие: try (destroyDialogssRoll) catch() Для автоматического удаления диалоговых окон выполните следующее упражнение. 1. Закройте все варианты диалогового окна Solar System. 2. Введите в сценарии следующий фрагмент кода перед началом выражения свитка (rollout): if ((ssRoll!= undefined) and (ssRoll.isdisplayed)) do (destroyDialog ssRoll) 3. Вычислите код сценария. Как видите, остается лишь один вариант данного диалогового окна. Теперь код сценария должен иметь следующий вид: Глава 2 -- SolarSystem.ms if ((ssRoll!= undefined) and (ssRoll.isdisplayed)) do (destroyDialogssRoll) rollout ssRoll "Solar System" ( spinner spn_sunRadius "Sun Radius" button but_createSun "Create Sun" spinner spn_NumPlanets "Number of Planets" type: #integer range: [1,10,3] button but_createPlanets "Create Planets" group "Planets" ( pickbutton pbt_pickPlanet "Pick Planet" autoDisplay: true spinner spn_planetRadius "Planet Radius" spinner spn_orbitRadius "Orbit Radius" ) on but_createSun pressed do ( sun = sphere radius: spn_sunRadius.value ) on but_createPlanets pressed do ( for i = 1 to spn_NumPlanets.value do ( -- Создание планеты planet = sphere() -- Создать планету
-- Установить радиус планеты в виде случайного числа -- в пределах от 10 до 30
planet.radius = random 10.0 30.0
-- Создать окружность для орбиты планеты orbit = circle radius:(i*100)
-- Поместить планету на орбиту planet.pos.controller = Path_Constraint() planet.pos.controller.path = orbit
-- Повернуть орбиту, чтобы она заняла произвольное -- исходное положение orbit.rotation.z_rotation = random 0.0 360.0 ) ) ) createDialog ssRoll 200 200
Дата добавления: 2014-10-15; Просмотров: 487; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |