Студопедия

КАТЕГОРИИ:


Архитектура-(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; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.007 сек.