Исходя из фона Java / C #, сайт MEL стал для меня чем-то вроде разочарования, может быть, потому, что я к нему не привык, но не думал, что это так же ясно, как некоторые сайты API.
Я пытаюсь написать команду MEL, чтобы автоматизировать сохранение, переименование файла, цикл сохранения.Я знаю, что уже должен быть какой-то сценарий, который это делает, но я тоже хотел научиться сам
Сначала я хочу, чтобы пользователь нажимал пользовательскую кнопку на полке, и имел диалоговое окно с подсказкой,предварительно загружен с текущим названием сцены, с кнопками сохранения и отмены.Переименование и сохранение - это хорошо, разделение на функции (есть ли разница между функциями и процедурами?) Начало порождать ошибки.
string $sceneName_new;
// Initiates the scene saving, checking filename meets standards
proc saveSceneAs() {
string $sceneName_old = `file -q -sceneName`;
string $result = `promptDialog
-title "Save scene as"
-message "Scene name:"
-button "Save" -button "Cancel"
-text $sceneName_old
-defaultButton "Save" -cancelButton "Cancel"
-dismissString "Cancel"`;
if ($result == "Save") {
$sceneName_new = `promptDialog -query -text`; // get result
$sceneName_new = strip($sceneName_new); // clean whitespace (start/end)
// check length of new name has at least one character
if (size($sceneName_new) < 1) {
print("Error: file name must contain at least one character. File not saved.\n");
} else if ($sceneName_old == $sceneName_new) {
confirmOverwriteOkay();
} else {
// good to save :D
saveScene($sceneName_new);
}
} else {
print("Cancelled. File not saved.\n");
}
}
// Asks user in case of unchanged filename, if okay to overwrite
proc confirmOverwriteOkay() {
string $overwriteConfirm = `promptDialog
-title "Warning"
-message "Are you sure you want to overwrite the current file?"
-text $sceneName_new;
-button "Yes, overwrite" -button "No, rename" -button "No, cancel"
-defaultButton "No, rename" -cancelButton "No, cancel"
-dismissString "No, cancel"`;
if ($overwriteConfirm == "Yes, overwrite") {
saveScene($sceneName_new);
} else if ($overwriteConfirm == "No, rename") {
// go back and try again
saveSceneAs();
} else {
print("Cancelled. File not saved.\n");
}
}
// Saves the scene with the given file name
proc saveScene(string $nameToSave) {
// TODO: rename, save file
print("File saved: " + $nameToSave);
}
saveSceneAs();
И ошибки:
// Error: -text $sceneName_new; //
// Error: "$sceneName_new" is an undeclared variable. //
// Error: -button "Yes, overwrite" -button "No, rename" -button "No, cancel" //
// Error: Syntax error //
// Error: saveScene($sceneName_new); //
// Error: "$sceneName_new" is an undeclared variable. //