Справочник по Flash - white cat
Шрифт:
Интервал:
Закладка:
Это означает, что unloadMovieNum() может удалять только фильмы на уровнях документа, а не клипы.
Обычно она применяется, если нужно динамически назначить уровень удаляемого фильма:
var x = 3;unloadMovieNum(x);
Тот же результат может быть получен с помощью конкатенации строк и использования обычной функции unloadMovie():
unloadMovie("_level1"+x);
Совместимость:
Используется с 3-ей версии Flash
var - Объявление локальной переменной
var
Используется для объявления локальных переменных
Синтаксис:
var variableName1 [= value1] [...,variableNameN [=valueN]];
Аргументы:
Описание:
Создание переменной называется ее объявлением. Объявление - это этап формального создания переменной. Когда впервые объявлена переменная, она пуста. В таком состоянии переменная содержит особое значение, называемое indefined (указывающее на отсутствие данных).
Примеры:
Пример: Объявление переменной.
var speed;var myVars;var y;
Слово var сообщает интерпретатору, что мы объявляем переменную, а последующий текст, например, speed, myVars или y, становиться именем новой переменной. Создавать переменные можно везде, где допускается прикрепление кода: в ключевом кадре, кнопке или клипе.
С помощью одного предложения var можно объявить несколько переменных.
Пример: Объявление нескольких переменных.
var speed, myVars, y;
Однако в этом случае мы не сможем поместить комментарии рядом с этой переменной.
Допустимые имена переменных:
Пример: Допустимые имена переменных.
var first_name;var counter;var MyFirstNameVars;
Пример: Недопустимые имена переменных.
var 1first_name // Начинается с цифрыvar variable name with spaces; // Содержит пробелыvar my-vars-name; // Содержит дефис
В предложении var также можно задать начальное значение новой переменной.
var x = 10;
Если локальные переменные объявляются внутри функции, то они действуют только в ее пределах. Если переменные не объявлены внутри блока, но список команд был выполнен через вызов call, переменные являются локальными и действуют до конца текущего списка. Если переменные не объявлены внутри блока и текущий список команд не выполнялся командой call, переменные не являются локальными.
Совместимость:
Используется с 5-ой версии Flash
while - Многократно выполняет некоторый код
while
Выполняет оператор или серию операторов в цикле, пока условный аргумент соответствует истине (true).
Синтаксис:
while(condition) { statements;}
Аргументы:
Описание:
По структуре предложение while во многом похоже на предложение if: если условие имеет значение true, выполняются предложения statements. Но, в отличии от if, по завершении последнего из подпредложений выполнение повторяется снова с начала предложения while (т.е. интерпретатор "зацикливается" на начале предложения while).
Второй проход через предложение while действует точно так же, как первый: вычисляется условие, и если оно по прежнему оказывается true, снова выполняются statements. Этот процесс продолжается, пока condition не станет false, и тогда выполнение продолжится с тех предложений, которые следуют в сценарии за while.
Цикл обычно используется для выполнения действий, пока переменная счетчика имеет значение меньше чем определенное условием. В конце каждого цикла счетчик увеличивает свое значение и цикл повторяется, и так происходит до тех пор, пока не счетчик не превысит порогового значения, определенного в условии condition, после чего цикл завершается.
Это пример дублирования пяти мувиков, каждый из которых получает случайные координаты x и y, свойства xscale, yscale и _alpha. Переменная foo инициализируется со значения 0. Аргумент condition устанавливается таким, что while цикл будет выполнен пять раз или пока значение переменной foo будет меньше 5. Внутри while цикла мувик клонируется и через setProperty получает новые свойства. Последний оператор цикла увеличивает значение foo, и так происходит до тех пор, пока foo не достигнет значения 5, после чего при очередной проверке аргумента condition будет получено false и цикл завершит работу.
on(release) {foo = 0;while(foo < 5) {duplicateMovieClip("/flower", "mc" + foo, foo);setProperty("mc" + foo, _x, random(275));setProperty("mc" + foo, _y, random(275));setProperty("mc" + foo, _alpha, random(275));setProperty("mc" + foo, _xscale, random(200));setProperty("mc" + foo, _yscale, random(200));foo = foo + 1; }}
Совместимость:
Используется с 4-ой версии Flash
with - Выполняет некоторый код в конце указанного объекта
with
Предоставляет сокращенный способ обращения к свойствам объекта.
Синтаксис:
with (object) { statements;}
Аргументы:
Описание:
Если обращение к свойству происходит в блоке предложений with, проверяется наличие этого свойства у объекта object. Если у object существует указанное свойство, то оно и используется для разрешения ссылки на свойство. Если у object нет такого свойства, оно ищется в текущей временной диаграмме или функции.
Примеры:
Следующий пример демонстрирует разницу между выполнением предложения внутри with и вне with:
PI = 10; // Задать переменную временной диаграммы, PIwith (Math) { // Выполнить предложения в контексте Math trace("pi is: " + PI); // Выводит: 3.1459 (PI - свойство Math)}trace("pi is: " + PI); // Выводит: 10 (Обращение к Math больше нет)
Помимо предоставления удобного доступа к свойствам объекта, with может использоваться для вызова методов объекта:
x = 10;y = 11;with (Math) { larget = max(x, y);}trace(larget); // Выводит: 11
Нельзя определять новое свойство объекта, являющегося целью предложения with. Обратите внимание в предыдущем примере на то, что переменная larget не определена в объекте Math, поэтому ссылка на свойство воздействует на временную диаграмму или функцию, содержащую предложение with.
Следующий код показывает неверную попытку присвоить переменной значение myClip:
with (myClip) { var x = 10; // значение x задается в текущей временной диаграмме, // а не в myClip}
Можно, однако, с полным правом использовать with для воздействия на экземпляры клипов другими способами. Это предложение предоставляет удобный способ работы с глубоко вложенными структурами экземпляров.
Например, следующий код:
_root.form.userProfile.userID = "34R56";_root.form.userProfile.gotoAndPlay("guestionnaire");
можно заменить таким:
with (_root.form.userProfile) { userID = "34R56"; gotoAndPlay("guestionnaire");}
Но with не является единственным способом обеспечения такого удобства. Можно просто присвоить наш экземпляр переменной и использовать эту переменную в ссылках:
var userForm = _root.form.userProfile;userForm.userID = "34R56";userForm.gotoAndPlay("guestionnaire");
Следующий пример устанавливает свойства x и y экземпляра someOtherMovieClip и затем командует ему перейти на третий кадр и остановиться:
with (someOtherMovieClip) {_x = 50;_y = 100;gotoAndStop(3);}
Следующий отрывок кода показывает, как можно написать предшествующий пример без использования команды with:
someOtherMovieClip._x = 50;someOtherMovieClip._y = 100;someOtherMovieClip.gotoAndStop(3);
Этот код также можно написать с использованием команды tellTarget:
tellTarget ("someOtherMovieClip") { _x = 50; _y = 100; gotoAndStop(3);}
Использование команды with полезно для одновременного вызова многих элементов в контекстном листе. В следующем примере встроенный объект Math помещен в начало объектной области (контекста). Установка Math, как объекта по умолчанию, приводит идентификаторы cos, sin и PI к Math.cos, Math.sin и Math.PI соответственно. Идентификаторы a, x, y и r - не методы или свойства объекта Math, но так как они существуют в объектной области (контексте) функции polar, они приводятся к к соответствующим локальным переменным.
function polar(r){var a, x, ywith (Math) {a = PI * r * rx = r * cos(PI) y = r * sin(PI/2)}trace("area = " +a)trace("x = " + x)trace("y = " + y)}
Возможно использование вложенных команд with для доступа к информации во многих контекстных областях. В следующем примере экземпляры fresno и salinas являются дочерними по отношению к california. Оператор устанавливает значения _alpha для fresno и salinas без изменения значения _alpha у california.
with (california){with (fresno){_alpha = 20;}with (salinas){_alpha = 40;}}
Совместимость:
Используется с 4-ой версии Flash