Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MAXScript Part 5.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
112.64 Кб
Скачать

Функция

freeSceneBitmap ( )

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

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

getBitmapOpenFileName caption:Символьная_строка_1

fileName:Символьная_строка_2

getBitmapSaveFileName caption:Символьная_строка_1

fileName:Символьная_строка_2

Если пользователь закрывает диалог, не выбрав файла, возвращается значение undefined, в противном случае возвращается строка – полный путь выбранного файла. Первый параметр задает заголовок диалога, второй – текст в строке ввода имени файла. Если в результате работы функции getBitmapSaveFileName будет выбран существующий файл, то будет выдан запрос на подтверждение перезаписи файла.

Примеры

Первый пример показывает, как с помощью MAXScript записать анимационный файл

T = teapot ( ) -- Создадим чайник, чтобы было что анимировать.

animate on at time 10 \ -- Установим контекст анимации и времени

rotate T 180 z_axis -- и повернем чайник.

b = bitmap 160 120 filename:"c:\\t.avi" -- Создадим битовую карту

for i =1 to 10 do -- Организуем цикл по кадрам

( at time i -- Устанавливаем временной

-- контекст,

render 160 120 to:b -- выводим результат в

-- битовую карту,

save b -- и сохраняем ее.

) -- Если сохранить ПОСЛЕ цикла,

-- запишется только последний кадр.

close b -- Закроем выходной файл. Это так же

-- освободит ссылку на битовую карту

-- и занимаемую ей память.

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

(

b = selectbitmap ( ) -- Откроем исходный файл

bname="bitmap_"+(getfilenamefile b.filename) -- Определим имя функции

w=b.width -- Определим высоту и ширину картинки

h=b.height

format "----------\nfn load_% = (\n" bname -- Определение функции

format "local % = bitmap % %\n" bname w h -- Создание карты в

--функции

-- запись функции, распаковывающей данные о пикселях

format "fn unpack val = for p in val collect (r = p/256^2; g = p/256-r*256; b = mod p 256; color r g b)\n"

for r = 0 to h-1 do -- Для каждой строки карты

-- получим функцию для записи колонок карты

( format "setpixels % [0,%] (unpack #(" bname r

pixels=getpixels b [0,r] w -- чтение колонки карты

for c=1 to w do -- цикл по пикселям

( p=pixels[c] -- получим пиксель

-- Упакуем цветовые данные в целое число

format "%" (((p.r as integer)*256+(p.g as integer))*256+(p.b as integer))

if c != w then -- Если пиксель не последний

format ", " -- поставим запятую

else

format "))\n" -- иначе перейдем на новую строку

)

)

format "return %\n" bname -- возврат битовой карты

format ")\n----------\n" -- завершение функции

)

Потоки

Файловый поток

Класс файловый поток предоставляет средства для ввода и вывода в текстовый файл.

Литералы

Литералов для файлового потока не предусмотрено

Конструкторы

Функция

createFile Символьная_строка

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

openFile Символьная_строка_1 mode:Символьная_строка_2

Первая строка – имя открываемого файла, вторая – необязательный именованный параметр, означающий режим открытия. Второй параметр может принимать одно из двух значений. “a” означает открытие для добавления записей в файл, “r” – открытие только для чтения.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]