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

Можно открыть зашифрованный файл, используя функцию

openEncryptedFile Символьная_строка Целое_число

Символьная строка задает имя файла, число – ключ шифровки. О том, как создаются зашифрованные файлы, речь еще впереди.

Свойства

Свойств у файловых потоков нет.

Методы

Для чтения данных из файлового потока предусмотрен целый ряд функций.

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

читает и возвращает очередную строку из файлового потока.

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

читает из файлового потока очередной символ и возвращает его в виде символьной строки.

readChars Файловый_поток Число

читает из указанного файлового потока количество символов, указанное вторым параметром.

readDelimitedString Файловый_поток Символьная_строка

читает символы из файлового потока до тех пор, пока не встретит указанную вторым параметром строку или конец файла.

skipToString Файловый_поток Символьная_строка

просматривает файл до тех пор, пока не встретит символьную строку, заданную вторым параметром и позиционирует указатель чтения/записи за ней. Если строка в файле не встретилась, возвращает undefined.

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

позиционирует указатель чтения/записи на начало следующей строки.

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

возвращает текущую позицию указателя чтения/записи.

seek Файловый_поток Число

устанавливает указатель чтения/записи в позицию, указанную вторым параметром.

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

возвращает true, если достигнут конец файла, в противном случае false.

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

записывает все данные, содержащиеся в буфере, на диск.

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

записывает все данные, содержащиеся в буфере, на диск и закрывает файл.

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

читает и возвращает значение операнда из текстового файла.

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

читает и выполняет выражение из текстового файла.

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

читает и выполняет все выражения, содержащиеся в текстовом файле, начиная с текущей позиции.

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

s = stringstream “random 0.0 1.0; random red blue”

readValue s

readValue s

seek s 0

readExpr s

readExpr s

seek s 0

execute s

Результаты выполнения

random ( ) читается и возвращается название функции

random

  1. читается и возвращается ноль

OK результат выполнения функции seek

0.494995 читается и выполняется выражение

random 0.0 1.0

(color 94.1571 0 25.2922) читается и выполняется выражение

random red blue

OK результат выполнения функции seek

(color 39.3391 0 137.636) читается и выполняется весь поток,

возвращается результат последнего выражения

Для вывода в файловый поток применяются функции print и format. Файловый поток при этом указывается именованным параметром to. Например

s = createFile “MyFile.txt”

str = “MyString”

print str to:s

close s

Строковый поток

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

Литералы

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

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

Строковый поток может быть получен следующим образом

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

Указанная символьная строка сразу помещается в созданный символьный поток, указатель чтения/записи получает значение 0. Можно получить тот же результат, преобразовав существующую символьную строку в строковый поток.

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

Операторы

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

Строковый_поток as string

Более ни к каким типам строковый поток не преобразуется.

Методы

Функция копирования позволяет получить новый экземпляр имеющегося потока

copy Строковый_поток

Вывод в строковый поток осуществляется с помощью стандартных функций print и format с указанием потока в именованном параметре to. Например

ss = StringStream “”

print “Testing stringstream out” to:ss

Остальные функции для работы со строковыми потоками полностью идентичны функциям для работы с файловыми.

readValue Строковый_поток

readExpr Строковый_поток

readLine Строковый_поток

readChar Строковый_поток

readChars Строковый_поток Число

readDelimitedString Строковый_поток Символьная_строка

skipToString Строковый_поток Символьная_строка

skipToNextLine Строковый_поток

execute Строковый_поток

filePos Строковый_поток

seek Строковый_поток Число

eof Строковый_поток

close Строковый_поток

flush Строковый_поток

Функции close и flush не производят никаких действий со строковыми потоками и оставлены только для совместимости строковых и файловых потоков.

Оконный поток

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

Литералы

Литералов для оконных потоков не предусмотрено.

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

Оконный поток может быть создан только одним способом. Функция

NewScript

создает и открывает пустое окно редактирование скрипта и возвращает оконный поток, который может быть использован для вывода данных. Например

debugw = newScript ( )

print “Testing WindowStream out” to:debugw

Свойства

Свойств оконный поток не имеет

Методы

Для работы с оконным потоком используются только стандартные функции вывода print и format. При этом поток указывается в именованном параметре to. При использовании функции format не забывайте о необходимости самостоятельно добавлять символ “\n” там, где нужен переход на новую строку.

Ключи анимации

Свойства и методы ключей анимации

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

Создать новый ключ анимации можно с помощью функции

addNewKey Контроллер Время #select

Первый параметр – контроллер, для которого создается ключ, второй – время в котором ключ будет создан. Параметр #select необязателен, но если он задан, то созданный ключ автоматически будет выделен. В руководстве данная функция описана в двух местах по разному. В одном из описаний упоминается параметр #interpolate, который надо задать, чтобы значение для ключа, созданного между двух других, интерполировалось по времени. Во втором описании интерполяция присутствует обязательно. Результаты эксперимента свидетельствуют в пользу верности второго описания.

Получить ссылку на существующий для некого контроллера ключ можно двумя способами

getKey Контроллер Число

Первый параметр – контроллер, для которого запрашивается ключ, второй – порядковый номер ключа. Второй способ предусматривает обращение к свойству .keys анимированного свойства объекта или соответствующего контроллера. Предположим, что у нас есть анимация линейного движения объекта $Sphere01. Тогда второй ключ этой анимации можно получить так

$Sphere01.position.keys[2]

или так

$Sphere01.position.controller.keys[2]

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