Справочник по Flash
О этом справочнике
Справочник предназначается для людей, уже освоивших азы программирования в Flash.
Справочник создан на основе информации, предоставленной на сайте «Справочник Web-языков» www.spravkaweb.ru.
В связи с тем, что данный ресурс постоянно пополняется новой информацией, скачать обновленную версию справочника можно из раздела Download
Дата выхода данной версии справочника: 12:47, 20 марта 2007.
Также на сайте доступны для скачивания справочники по PHP, CSS, Perl, MySQL.
ActionScript
gotoAndPlay
(Глобальная функция)
Осуществляет немедленный безусловный переход на указанный кадр, а затем воспроизводит текущий клип или фильм.
Синтаксис:
gotoAndPlay(frameNumber)gotoAndPlay(frameLabel)gotoAndPlay(scene, frameNumber)gotoAndPlay(scene, frameLabel)
Аргументы:
Описание:
Если функция gotoAndPlay() вызвана без необязательного параметра scene, то воспроизведение начинается с номера кадра или метки, заданной в параметре frameNumber или frameLabel, на текущей временной диаграмме.
Если при вызове функции используется два параметра, то подразумевается, что первый задает имя сцены. При этом функция gotoAndPlay() перемещает воспроизводящую головку в указанный номером или меткой кадр заданной сцены и воспроизводит эту сцену.
Отметим, что при использовании аргумента scene функция должна вызываться из временной диаграммы _root; в противном случае, операция не выполняется, и воспроизводящая головка не перемещается в указанный кадр.
Содержимое текущего кадра не прорисовывается. Если после этого оператора в текущем сценарии расположены еще какие-либо операторы, то они выполняются.
gotoAndPlay(40);
Глобальная функция gotoAndPlay() действует только на текущую временную диаграмму. На кадры или состояние других клипов текущей временной диаграммы она не оказывает влияние. Для воспроизведения других клипов нужно вызывать отдельные команды play() или gotoAndPlay() для каждого клипа. Чтобы применить функцию gotoAndPlay() к клипу, находящемуся вне текущей временной диаграммы, нужно использовать формат метода клипа myClip.gotoAndPlay().
Примеры:
В следующем примере при нажатии на кнопку проигрывание переходит на 10-й кадр и продолжает играть:
gotoAndPlay(10);
А здесь перейдем в кадр "begin" сцены beginScene и воспроизведем его:
gotoAndPlay("beginScene", "begin");
Дополнительно:
У этого оператора на вспомогательной панели расположено 4-е поля:
Совместимость:
Используется со 2-ой версии Flash.
Basic Actions
gotoAndPlay
(Глобальная функция)
Осуществляет немедленный безусловный переход на указанный кадр, а затем воспроизводит текущий клип или фильм.
Синтаксис:
gotoAndPlay(frameNumber)gotoAndPlay(frameLabel)gotoAndPlay(scene, frameNumber)gotoAndPlay(scene, frameLabel)
Аргументы:
Описание:
Если функция gotoAndPlay() вызвана без необязательного параметра scene, то воспроизведение начинается с номера кадра или метки, заданной в параметре frameNumber или frameLabel, на текущей временной диаграмме.
Если при вызове функции используется два параметра, то подразумевается, что первый задает имя сцены. При этом функция gotoAndPlay() перемещает воспроизводящую головку в указанный номером или меткой кадр заданной сцены и воспроизводит эту сцену.
Отметим, что при использовании аргумента scene функция должна вызываться из временной диаграммы _root; в противном случае, операция не выполняется, и воспроизводящая головка не перемещается в указанный кадр.
Содержимое текущего кадра не прорисовывается. Если после этого оператора в текущем сценарии расположены еще какие-либо операторы, то они выполняются.
gotoAndPlay(40);
Глобальная функция gotoAndPlay() действует только на текущую временную диаграмму. На кадры или состояние других клипов текущей временной диаграммы она не оказывает влияние. Для воспроизведения других клипов нужно вызывать отдельные команды play() или gotoAndPlay() для каждого клипа. Чтобы применить функцию gotoAndPlay() к клипу, находящемуся вне текущей временной диаграммы, нужно использовать формат метода клипа myClip.gotoAndPlay().
Примеры:
В следующем примере при нажатии на кнопку проигрывание переходит на 10-й кадр и продолжает играть:
gotoAndPlay(10);
А здесь перейдем в кадр "begin" сцены beginScene и воспроизведем его:
gotoAndPlay("beginScene", "begin");
Дополнительно:
У этого оператора на вспомогательной панели расположено 4-е поля:
Совместимость:
Используется со 2-ой версии Flash.
gotoAndPlay - Переход на кадр и воспроизведение
gotoAndPlay
(Глобальная функция)
Осуществляет немедленный безусловный переход на указанный кадр, а затем воспроизводит текущий клип или фильм.
Синтаксис:
gotoAndPlay(frameNumber)gotoAndPlay(frameLabel)gotoAndPlay(scene, frameNumber)gotoAndPlay(scene, frameLabel)
Аргументы:
Описание:
Если функция gotoAndPlay() вызвана без необязательного параметра scene, то воспроизведение начинается с номера кадра или метки, заданной в параметре frameNumber или frameLabel, на текущей временной диаграмме.
Если при вызове функции используется два параметра, то подразумевается, что первый задает имя сцены. При этом функция gotoAndPlay() перемещает воспроизводящую головку в указанный номером или меткой кадр заданной сцены и воспроизводит эту сцену.
Отметим, что при использовании аргумента scene функция должна вызываться из временной диаграммы _root; в противном случае, операция не выполняется, и воспроизводящая головка не перемещается в указанный кадр.
Содержимое текущего кадра не прорисовывается. Если после этого оператора в текущем сценарии расположены еще какие-либо операторы, то они выполняются.
gotoAndPlay(40);
Глобальная функция gotoAndPlay() действует только на текущую временную диаграмму. На кадры или состояние других клипов текущей временной диаграммы она не оказывает влияние. Для воспроизведения других клипов нужно вызывать отдельные команды play() или gotoAndPlay() для каждого клипа. Чтобы применить функцию gotoAndPlay() к клипу, находящемуся вне текущей временной диаграммы, нужно использовать формат метода клипа myClip.gotoAndPlay().
Примеры:
В следующем примере при нажатии на кнопку проигрывание переходит на 10-й кадр и продолжает играть:
gotoAndPlay(10);
А здесь перейдем в кадр "begin" сцены beginScene и воспроизведем его:
gotoAndPlay("beginScene", "begin");
Дополнительно:
У этого оператора на вспомогательной панели расположено 4-е поля:
Совместимость:
Используется со 2-ой версии Flash.
gotoAndStop - Переход на кадр и остановка
gotoAndStop
(Глобальная функция)
Осуществляет немедленный безусловный переход на указанный кадр, а затем останавливает текущий клип или фильм.
Синтаксис:
gotoAndStop(frameNumber)gotoAndStop(frameLabel)gotoAndStop(scene, frameNumber)gotoAndStop(scene, frameLabel)
Аргументы:
Описание:
Если функция gotoAndStop() вызвана без необязательного параметра scene, то переход происходит на номер кадра или метки, заданный в параметре frameNumber или frameLabel, на текущей временной диаграмме.
Если при вызове функции используется два параметра, то подразумевается, что первый задает имя сцены. При этом функция gotoAndStop() перемещает воспроизводящую головку в указанный номером или меткой кадр заданной сцены и останавливает воспроизведение.
Отметим, что при использовании аргумента scene функция должна вызываться из временной диаграммы _root; в противном случае, операция не выполняется, и воспроизводящая головка не перемещается в указанный кадр.
Содержимое текущего кадра не прорисовывается. Если после этого оператора в текущем сценарии расположены еще какие-либо операторы, то они выполняются.
Глобальная функция gotoAndStop() действует только на текущую временную диаграмму. На кадры или состояние других клипов текущей временной диаграммы она не оказывает влияние. Для воспроизведения других клипов нужно вызывать отдельные команды gotoAndStop() для каждого клипа. Чтобы применить функцию gotoAndStop() к клипу, находящемуся вне текущей временной диаграммы, нужно использовать формат метода клипа myClip.gotoAndStop().
Примеры:
В следующем примере при нажатии на кнопку проигрывание переходит на 10-й кадр и останавливает воспроизведение:
on (release) {gotoAndStop(10);}
А здесь перейдем в кадр "begin" сцены beginScene:
gotoAndStop("beginScene", "begin");
Совместимость:
Используется со 2-ой версии Flash.
nextFrame - Переход на следующий кадр
nextFrame
(Глобальная функция)
Перемещает воспроизводящую головку текущего клипа или фильма на один кадр вперед и останавливает ее.
Синтаксис:
nextFrame()
Описание:
Функция nextFrame() перемещает воспроизводящую головку текущей временной диаграммы на один кадр вперед и останавливает ее там.
Текущей временной диаграммой называется временная диаграмма, из которой была вызвана функция nextFrame().
Эта функция идентична функции gotoAndStop(_currentFrame+1);
Если вызов функции произошел из последнего кадра текущей временной диаграммы, и за этой сценой нет другой, то воспроизводящая головка просто останется на месте. Если за текущей сценой есть другая, то происходит переход на 1 кадр следующей сцены.
Примеры:
В следующем примере при нажатии на кнопку происходит переход на следующий кадр:
on (release) {nextFrame();}
Совместимость:
Используется со 2-ой версии Flash.
prevFrame - Переход на предыдущий кадр
prevFrame
Перемещает воспроизводящую головку текущего клипа или фильма на один кадр назад и останавливает ее
Синтаксис:
prevFrame()
Описание:
Функция prevFrame() перемещает воспроизводящую головку текущей временной диаграммы на один кадр назад и останавливает ее там.
Текущей временной диаграммой называется временная диаграмма, из которой была вызвана функция prevFrame().
Эта функция идентична функции gotoAndStop(_currentFrame-1);.
Если вызов функции произошел из первого кадра текущей временной диаграммы, и перед этой сценой нет другой, то воспроизводящая головка просто останется на месте. Если перед текущей сценой есть другая, то происходит переход на последний кадр предшествующей сцены.
Примеры:
В следующем примере при нажатии на кнопку происходит переход на предыдущий кадр:
on (release) {prevFrame();}
Совместимость:
Используется со 2-ой версии Flash.
nextScene - Переход на следующую сцену
nextScene
(Глобальная функция)
Перемещает воспроизводящую головку в первый кадр следующей сцены
Синтаксис:
nextScene()
Описание:
Функция nextScene() перемещает главную воспроизводящую головку фильма в первый кадр следующей сцены и останавливает временную диаграмму главного фильма.
Если вызов функции произошел из последней сцены фильма, то переход осуществляется на первый кадр этой сцены и воспроизведение останавливается.
Функция nextScene() должна вызываться из главной временной диаграммы фильма, т.е. она не работает внутри клипа или обработчика onClipEvent().
Примеры:
В следующем примере при нажатии на кнопку происходит переход на следующую сцену:
on (release) {nextScene();}
Совместимость:
Используется со 2-ой версии Flash.
prevScene - Переход на предыдущую сцену
prevScene
(Глобальная функция)
Перемещает воспроизводящую головку в первый кадр предыдущей сцены
Синтаксис:
prevScene()
Описание:
Функция prevScene() перемещает главную воспроизводящую головку фильма в первый кадр предыдущей сцены и останавливает временную диаграмму главного фильма.
Если вызов функции произошел из первой сцены фильма, то переход осуществляется на первый кадр этой сцены и воспроизведение останавливается.
Функция prevScene() должна вызываться из главной временной диаграммы фильма, т.е. она не работает внутри клипа или обработчика onClipEvent().
Примеры:
В следующем примере при нажатии на кнопку происходит переход на предыдущую сцену:
on (release) {prevScene();}
Совместимость:
Используется со 2-ой версии Flash.
Play - Воспроизведение
Play
(Глобальная функция)
Воспроизведение ролика после остановки
Синтаксис:
Play()
Описание:
При вызове функции Play() начинается последовательное воспроизведение кадров текущего главного фильма или клипа. Текущим называется фильм или клип, в котором находится предложение с вызовом функции Play(). Кадры воспроизводятся с частотой, измеряемой в кадрах в секунду (FPS) и задаваемой для фильма в целом в свойствах фильма Movie Properties (меню Modify - Movie - Frame Rate).
Начавшееся воспроизведение клипа или фильма продолжается, пока его специально не остановит вызов другой функции. Все клипы фильмов зацикливаются (снова начинают воспроизведение с кадра 1), когда воспроизводящая головка достигает конца временной диаграммы. Однако в браузере главные фильмы зацикливаются только тогда, когда в коде, встраивающем фильм в страницу HTML, указана необходимость зацикливания с помощью атрибута LOOP. (Если для встраивания фильма в страницу HTML используется команда Publish, атрибут LOOP устанавливается при выборе меню File - Publish Setting - HTML - Playback - Loop.)
Примеры:
Следующий код использует оператор if для проверки введенного значения имени пользователя. Если введено Steve, команда play включает дальнейшее воспроизведение клипа на линейке. В противном случае, в текстовом поле с переменной alert выдается соответствующее значение.
stop();if (name = "Steve") {play();} else {alert = "You are not Steve!";}
Совместимость:
Используется со 2-ой версии Flash
Stop - Остановка
Stop
(Глобальная функция)
Производит остановку фильма на текущем кадре
Синтаксис:
Stop()
Описание:
Функция Stop() останавливает воспроизведение фильма или клипа. Это глобальный аналог метода MovieClip.stop(). Она часто используется для ожидания, когда пользователь, например, сделает выбор в графическом меню.
Пример:
on (release) {stop();}
Совместимость:
Используется с 3-ей версии Flash
toggleHighQuality - Изменение качества
stopAllSounds
(Глобальная функция)
Производит выключение всех звуков в фильме.
Синтаксис:
stopAllSounds()
Описание:
Функция stopAllSounds() заглушает все звуки, воспроизводящиеся в данный момент в фильме, независимо от глубины вложенности в клипы. Она применяется ко всем звукам фильма, в том числе к программно генерируемым объектам Sound. Более точно управлять остановкой, запуском и громкостью звука можно с помощью класса Sound.
Стоит отметить, что функция stopAllSounds() оказывает только временное воздействие. Любой звук, который начинается после вызова stopAllSounds(), будет воспроизводиться нормально.
Пример:
Следующий код может быть введен в кнопку, которая при нажатии выключит все звуки в клипе:
on(release) {stopAllSounds();}
Совместимость:
Используется с 3-ей версии Flash.
stopAllSounds - Остановка всех звуков
stopAllSounds
(Глобальная функция)
Производит выключение всех звуков в фильме
Синтаксис:
stopAllSounds()
Описание:
Функция stopAllSounds() заглушает все звуки, воспроизводящиеся в данный момент в фильме, независимо от глубины вложенности в клипы. Она применяется ко всем звукам фильма, в том числе к программно генерируемым объектам Sound. Более точно управлять остановкой, запуском и громкостью звука можно с помощью класса Sound.Стоит отметить, что функция stopAllSounds() оказывает только временное воздействие. Любой звук, который начинается после вызова stopAllSounds(), будет воспроизводиться нормально.
Пример:
Следующий код может быть введен в кнопку, которая при нажатии выключит все звуки в клипе:
on(release) {stopAllSounds();}
Совместимость:
Используется с 3-ей версии Flash
getURL - Переход на веб-страницу
getURL
(Глобальная функция)
Загружает документ с указанного адреса (URL) в окно, или передает переменные другому приложению по URL (выполняет сценарии на стороне сервера), либо генерирует событие Macromedia Director.
Синтаксис:
getURL(URL)getURL(URL, window)getURL(URL, window, method)
Аргументы:
Описание:
Функция getURL() используется для того, чтобы:
Чтобы загрузить документ в текущее окно или фрейм, просто укажите URL документа, не передавая аргументы window или method. Естественно, Flash поддерживает абсолютные URL (такие, в которых указаны протокол, например, "http:", а также имя сервера или аппаратного устройства) и относительные URL (те, которые заданы относительно текущего адреса):
// Абсолютный URL веб-страницыgetURL("http://spravkaweb.ru/");// Абсолютный URL локального файлаgetURL("file:///f:/www/example.html");// Относительный URL, предполагается протокол httpgetURL("/resource/resource.html");
Чтобы загрузить документ в окно или фрейм, имеющие имя, укажите это имя в качестве аргумента window:
// Загрузить в именованный фреймgetURL("http://spravkaweb.ru/", "myFrame");// Загрузить в именованное окноgetURL("http://spravkaweb.ru/", "myWindow");
Чтобы заменить набор фреймов, в котором содержится текущий фильм, дайте аргументу window заначение "_parent":
getURL("http://spravkaweb.ru/", "_parent");
Чтобы заменить загружаемым документом все наборы фреймов на странице, дайте аргументу window значение "_top":
getURL("http://spravkaweb.ru/", "_top");
Чтобы открыть загружаемый документ в новом анонимном окне браузера, дайте аргументу window значение "_blank":
getURL("http://spravkaweb.ru/", "_blank");
Нужно отметить, что открытие нового окна с помощью "_blank" лишает нас всякого контроля над внешним видом нового окна (размером, конфигурацией панелей управления, местонахождением и т.д.). Чтобы открывать настраиваемые окна с помощью getURL(), нужно вызвать на содержащей фильм странице функцию JavaScript.
С помощью функции getURL() можно также посылать переменные удаленным приложениям или сценариям на сервере. Чтобы передать переменные текущей временной диаграммы во внешний сценарий, нужно указать имя сценария в качестве аргумента URL и задать "GET" или "POST" в качестве значения аргумента method:
getURL("http://spravkaweb.ru/php.php", "_blank", "GET");
При вызове в качестве метода клипа getURL() посылает переменные временной диаграммы этого клипа:
// Передает переменные myClip в example.phpmyClip.getURL("http://spravkaweb.ru/example.php", "_blank", "GET");
Результаты выполнения сценария появятся в окне или фрейме, указанных в аргументе window (который необходимо задавать при передаче переменных).
Чтобы загрузить результаты выполнения сценария в текущие фрейм или окно, нужно задать в качестве аргумента window значение "_self":
getURL("http://spravkaweb.ru/", "_self", "GET");
Если значением аргумента method является "GET", переменные временной диаграммы текущего клипа посылаются в виде строки запроса, присоединенной к URL сценария в запросе HTTP GET. Строки запросов состоят из пар имя/значение, разделяемых амперандами (&):
getURL("http://www.mysite.ru/example.php?ss=2&pl=34", "_self");
Если аргумент method содержит "POST", переменные временной диаграммы текущего клипа посылаются сценарию в виде отдельного блока данных после заголовка запроса HTTP POST (так же, как в обычной форме HTML, использующей метод POST). Обратите внимание, что "POST" недоступен в автономном Flash Player.
Поскольку для большинства веб-серверов максимальная допустимая длина URL лежит между 255 и 1024 символами, при передаче больших объемов данных используйте "POST", а не "GET".
Надо отметить, что любые данные, возвращаемые сценарием, который вызван getURL(), выводятся как обычное веб-содержание в браузере, а не во Flash. Чтобы получить результаты выполнения сценария во Flash, используйте loadVariables().
Функция getURL() может применяться и с другими протоколами помимо "http:".
Протоколы, поддерживаемые getURL
Как показывает вышеприведенная таблица, если принадлежность Flash импортируется в файл Macromedia Director, с помощью getURL() можно генерировать события Lingo или выполнять команды Lingo. (Lingo - это язык сценариев в Director, аналогичный ActionScript).
Например, можно добавить событие кадра такого вида:
getURL("event: eventName params");
что приведет к вызову в Director обработчика события Lingo с именем on eventName.Вот команда getURL(), генерирующая событие с именем "myEvent" и передающая ему строку "A". Обратите внимание на преобразование символа с помощью:
// Отправить событие в DirectorgetURL("event: myEvent "A"");
Вот обработчик события Lingo sprite, который должен быть прикреплен к спрайту Flash в Director, чтобы получить событие. Заметим, что спрайт в Director примерно соответствует экземпляру клипа во Flash; ключевое слово Lingo put родственно команде ActionScript trace(), а && в Lingo является оператором конкатенации строк:
on myEvent msgput "The message received from Flash was " && msgend
Можно также спровоцировать запуск Lingo из спрайта Flash в Director с помощью ключевого слова "lingo:":
// Пусть Director даст звуковой сигналgetURL("lingo: beep");
Наконец, с помощью getURL() можно выполнять код JavaScript.Вызовем простую функцию alter JavaScript с помощью getURL():
getURL("javascript: alter("Hello world");");
Примеры:
Далее приведен стандартный код кнопки со ссылкой на веб-страницу:
on(release) {getURL("http://www.spravkaweb.ru/");}
Совместимость:
Используется со 2-ей версии Flash. В 4-ой версии усилена добавлением параметра method.
fscommand - Передача данных браузеру
fscommand
(Глобальная функция)
Позволяет отправить данные программе, которая запустила данный клип
Синтаксис:
fscommand(command, arguments)
Аргументы:
Описание:
С помощью функции fscommand(), фильм Flash может связываться с автономным проигрывателем или приложением-хозяином проигрывателя:средой, в которой выполняется Flash Player (веб-браузером или Macromedia Director).
Функция fscommand() обычно используется одним из трех способов:
При использовании с автономным плеером fscommand() принимает одну из встроенных пар команда/аргумент, как показано в следующей таблице:
Пары команда/аргумент в автономном проигрывателе
При использовании в браузере функция fscommand() в фильме влечет вызов специальной функции JavaScript (Netscape) или VBScript (Internet Explorer) на странице, содержащей фильм. Имя этой специальной функции имеет общий вид movieID_DoFSCommand, где movieID является именем, указанным в атрибуте фильма OBJECT ID (Internet Explorer) или атрибутом EMBED NAME (Netscape) в содержащем фильм документе HTML. При вызове movieID_DoFSCommand() значения параметров fscommand() command и arguments передаются в качестве аргументов функции movieID_DoFSCommand(). Если на содержащей фильм странице не существует функции movieID_DoFSCommand(), происходит отказ функции fscommand() без каких-либо сообщений.
Обратите внимание, что для работы fscommand() с Netscape атрибут swLiveConnect тега фильма EMBED должен быть задан как "true":
<EMBEDNAME="testmoviequot;SRC="myMovie.swf"WIDTH="100%"HEIGHT="100%"swLiveConnect="true"PLUGINSPAGE="http://www.macromedia.com/go/flashplayer/"></EMBED>
Связь с браузером через fscommand() невозможна в следующих конфигурациях системы:
Стоит отметить, что fscommand() не всегда дает лучший способ связи с фильмом Director из Flash. Предпочтительным средством коммуникации с Director является функция getURL() с протоколом event: или lingo:.
Примеры:
Чтобы выйти из автономного проектора, используйте такой код:
fscommand("quit");
Чтобы создать автономный проектор, выполняемый в полноэкранном режиме:
fscommand("fullscreen", "true");
Чтобы создать автономный проектор, выполняемый в полноэкранном режиме, но сохраняющий размер исходного фильма:
fscommand("fullscreen", "true");fscommand("allowscale", "false");
Для запуска Notepad на большинстве систем Windows можно использовать:
fscommand("exec", "C:/WINDOWS/NOTEPAD.EXE");
В следующем коде показана страница HTML с командами JavaScript и VBScript, необходимыми для ответа на простой вызов fscommand() в фильме. Обратите внимание, что функция VBScript просто вызывает функцию JavaScript - это позволяет работать как в Internet Explorer, так и в Netscape с помощью одной функции JavaScript:
<HTML><HEAD><TITLE>fscommand demo</TITLE><SCRIPT LANGUAGE="JavaScript"><!--function testmovie_DoFSCommand(command, args) { alert("Здесь данные из Flash: "+command+", "+args);}//--></SCRIPT><SCRIPT LANGUAGE="VBScript"><!--Sub testmovieFSCommand(ByVal command, ByVal args) call testmovie_DoFSCommand(command, args)end sub//--></SCRIPT></HEAD><BODY><OBJECT ID="testmovie" CLASSID="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" WIDTH="100%" HEIGHT="100%" CODEBASE="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab"><PARAM NAME="MOVIE" VALUE="flash-to-javascript.swf"><EMBED NAME="testmovie" SRC="flash-to-javascript.swf" WIDTH="100%" HEIGHT="100%" swLiveConnect="true" PLUGINSPACE="http://www.macromedia.com/go/flashplayer/"</EMBED></OBJECT></BODY></HTML>
Чтобы вызвать предшествующую функцию JavaScript testmovie_DoFSCommand() из фильма flash-to-javascript.swf, можно использовать:
fscommand("hello", "world");
Совместимость:
Используется с 4-ой версии Flash
loadMovie - Загрузить файл .swf
loadMovie
(Глобальная функция)
Позволяет загрузить в проигрыватель файл .swf.
Синтаксис:
loadMovie(URL, target)loadMovie(URL, target, method)
Аргументы:
Описание:
Функция loadMovie() импортирует во Flash Player файл .swf, размещенный по адресу URL.
Если target является ссылкой на существующий клип или строкой, задающей путь к клипу, загруженный файл .swf будет помещен в указанный клип (вызывая удаление предшествующего содержимого). Чтобы загрузить фильм в текущий клип, используйте в качестве параметра target пустую строку:
loadMovie("myMovie.swf", "")
Если target является ссылкой на существующий уровень документа (например, _level2) или строкой, указывающей путь к уровню документа (например, "_level2"), то файл .swf помещается на указанный уровень документа. Загрузка фильма на уровень _level0 очищает проигрыватель от всего содержимого и помещает новый файл .swf на уровень _level0.
Можно посылать переменные вместе с вызовом loadMovie(), и тогда URL обычно является адресом сценария, возвращающего файл .swf, соответствующий переданным переменным. Чтобы отправить переменные при вызове loadMovie(), включается аргумент method (заданный в "GET" или "POST"). "GET" посылает переменные временной диаграммы текущего клипа в виде строки запроса, присоединенный к URL сценария. "POST" посылает переменные временной диаграммы текущего клипа после заголовка HTTP для запроса POST. Метод "POST" недоступен в автономном Flash Player. Поскольку у большинства веб-серверов длина URL ограничена величиной от 255 до 1024 символов, для передачи больших объемов данных используйте "POST", а не "GET".
Вызовы loadMovie() над веб-сервером, использующие метод "GET", могут передавать переменные в загруженный фильм без вмешательства сценария.
Например, загрузим внешний фильм myMovie.swf на уровень 1 стека документов проигрывателя, передав ему переменные текущей временной диаграммы:
loadMovie("myMovie.swf", "_level1", "GET");
Переменные, передаваемые в загружаемый фильм, определяются на главной временной диаграмме этого фильма. Этот прием действует только при обработке запроса loadMovie() веб-сервером. Попытки использовать метод "GET" в loadMovie() для локальных файлов вызывают ошибку.
Некоторые особенности:
Будьте осторожны при использовании ссылок на клипы и уровни в качестве аргумента target функции loadMovie(). Если аргумент target дает значение undefined, то функция loadMovie() использует в качестве target текущую временную диаграмму.
Аналогично, ссылки target, дающие пустую строку, заставляют loadMovie() действовать над текущей временной диаграммой. В частности, этим вызываются проблемы при загрузке фильмов на новые незанятые уровни.
Рассмотрим следующий код:
loadMovie("myMovie.swf", _level1);
Если до выполнения этого предложения объект _level1 не существовал, то этот код загрузит файл myMovie.swf во временную диаграмму, содержавшую предложение loadMovie(), а не на _level1! Чтобы избежать этой проблемы, вместо loadMovie() можно использовать loadMovieNum(). Кроме того, можно указать строку в качестве параметра target для loadMovie():
loadMovie("myMovie.swf", "_level1");
В этом случае уровень будет создан, если его еще не существует ( только _level0 существует по умолчанию во всех фильмах).
Пример:
// Поместить myMovie.swf на level 1loadMovie("myMovie.swf", "_level1");// Поместить myMovie.swf на level 0loadMovie("myMovie.swf", "_level0");// Поместить myMovie.swf в myCliploadMovie("myMovie.swf", "myClip");// Заменить содержимое проигрывателя на// coolmovie.swf, использую абсолютный путьloadMovie("http://www.yousite.ru/coolmovie.swf", "_level0");// Загрузить фильм на уровень 1 с рабочего стола Windows.loadMovie("file:///C:/WINDOWS/Desktop/myMovie.swf", "_level1");
Совместимость:
Используется с 4-ой версии Flash
loadMovieNum - Загрузить файл .swf
loadMovieNum
(Глобальная функция)
Позволяет загрузить в проигрыватель файл .swf
Синтаксис:
loadMovieNum(URL, level)loadMovieNum(URL, level, method)
Аргументы:
Описание:
Функция loadMovieNum() почти идентична loadMovie(), но требует задания целевого уровня загрузки в виде числа, а не строки. Это означает, что loadMovieNum() может загружать фильмы только на уровни документов, а не в клипы. Если указанного уровня не существует, он будет создан. Если указанный уровень существует, его содержимое будет заменено новым файлом .swf. Допускается загрузка фильма на _level2, даже если _level1 не создан.
Функцию loadMovieNum() можно использовать, когда нужно динамически задавать уровень для загрузки фильма, например:
var x = 3;loadMovieNum("muMovie.swf", x);
Того же самого можно достичь путем конкатенации строк и использования обычной функции loadMovie():
loadMovie("muMovie.swf", "_level" + x);
Совместимость:
Используется с 3-ей версии Flash
unloadMovie - Удалить фильм или клип из проигрывателя
unloadMovie
(Глобальная функция)
Позволяет удалить фильм или клип фильма из проигрывателя
Синтаксис:
unloadMovie(target)
Аргументы:
Описание:
Функция unloadMovie() чаще всего используется для удаления фильмов с уровней документов в проигрывателе.
Например, если фильм загружен на уровень 1 проигрывателя, удалить его из проигрывателя можно так:
unloadMovie("_level1");
Функция unloadMovie() может использоваться с экземплярами клипов, и тогда она удаляет содержимое экземпляра, а не сам экземпляр. Экземпляр остается на рабочем столе в виде пустой оболочки, в которую можно загружать последующие фильмы. Поэтому один клип может выступать как контейнер динамического содержания, управляемого последовательными вызовами loadMovie() и unloadMovie().
Совместимость:
Используется с 4-ой версии Flash
unloadMovieNum - Удалить фильм из проигрывателя
unloadMovieNum
(Глобальная функция)
Позволяет удалить фильм из проигрывателя
Синтаксис:
unloadMovieNum(level)
Аргументы:
Описание:
Функция unloadMovieNum() почти идентична функции unloadMovie(), за исключением того, что требует задания конечного уровня level как числа, а не как строки.
Это означает, что unloadMovieNum() может удалять только фильмы на уровнях документа, а не клипы.
Обычно она применяется, если нужно динамически назначить уровень удаляемого фильма:
var x = 3;unloadMovieNum(x);
Тот же результат может быть получен с помощью конкатенации строк и использования обычной функции unloadMovie():
unloadMovie("_level1"+x);
Совместимость:
Используется с 3-ей версии Flash
tellTarget - Обратиться к удаленному клипу
tellTarget
(Глобальная функция)
Позволяет выполнить предложения, находящиеся в области видимости удаленного клипа фильма
Синтаксис:
tellTarget(target){ statements}
Аргументы:
Описание:
Во Flash 3 и Flash 4 tellTarget() была главным средством связи между двумя клипами фильмов (т.е. управления одним клипом из другого). Она использовалась для вызова таких функций, как play(), stop(), и gotoAndStop() с удаленными клипами фильмов. Во Flash 4, где в ActionScript были добавлены переменные, с помощью tellTarget() можно было также получать и задавать значения переменных удаленных клипов. Во Flash 5 такие действия лучше осуществлять с помощью оператора точки, ., и оператора обращения к массиву, []. Другой альтернативой функции tellTarget() является предложение with.
Некоторые особенности:
Функцию tellTarget() лучше было бы описать как предложение, поскольку для нее требуется блок предложений. Вопрос этот, однако, чисто академический, поскольку tellTarget() устарела.
Обычно она применяется, если нужно динамически назначить уровень удаляемого фильма.
Пример:
tellTarget("ball") {gotoAndStop("redStripes");_x +=300;}
Совместимость:
Используется с 3-ей версии Flash. Устарела в 5-ой версии
ifFrameLoaded - Выполняет код если загруженн определенный кадр
ifFrameLoaded
(Предложение)
Выполняет некоторый код, если загружен определенный кадр
Синтаксис:
ifFrameLoaded(scene, frame) { statement;}ifFrameLoaded(frame) { statement;}
Аргументы:
Описание:
Проверяет, доступно ли содержимое указанного кадра локально (скачано ли уже?). Используйте для создания прелоадера, то есть небольшой анимации, пока загружается остальная часть фильма. Разница между использованием _framesloaded и ifFrameLoaded() в том, что _framesloaded позволяет добавить if, или else, в то время, как ifFrameLoaded() позволяет указать количество кадров в одном простом выражении.
Начиная с Flash 4 следует использовать свойства _totalframes и _framesloaded с предложениями if-else для создания более гибкого предварительного загрузчика.
Пример:
if (_totalframes > 0 && _framesloaded == _totalframes) {gotoAndPlay("beginFrame");} else {gotoAndPlay(_currentframe - 1);}
Совместимость:
Используется с 3-ей версии Flash. Действие ifFrameLoaded устарело в Flash 5; используйте вместо него _framesloaded
Action
break
(Предложение)
Прекращает выполнение цикла
Синтаксис:
break()
Описание:
В простом цикле проверочное выражение является единственным фактором, определяющим прекращение выполнения цикла. Когда проверочное предложение простого цикла дает значение false, цикл завершается. Однако если цикл становится более сложным, может потребоваться остановка его выполнения независимо от значения проверочного предложения. Для этого используются предложения break и continue.
Предложение break предоставляет способ остановить процесс, продолжать который нет больше необходимости.
Например, можно использовать цикл for-in в программе проверки формы, которая обходит переменные текстовых полей ввода на временной диаграмме. При обнаружении пустого поля ввода мы предупреждаем пользователя о том, что он неправильно заполнил форму.
Прекратить процесс можно, выполнив предложение break, как показано в приведенном далее примере.
Обратите внимание, что в примере предполагается существование клипа с именем form, который содержит ряд объявленных входных переменных с именами input01, input02 и т.д.:
for(var prop in form) { // Если это свойство служит одним из наших // "входных" текстовых полей if (prop.indexOf("input") != -1) { // Если в поле формы пусто, // прервать операцию if (form[prop] == "") { displayMessage = "Пожалуйста, заполните форму полностью."; break; } // Все подпредложения после команды break пропускаются, // когда выполнена break }}// Отсюда возобновляется выполнение после окончания цикла,// вызванного командой break или присваиванием проверочному// выражению значения false
Предложение break можно использовать для прерывания цикла, который иначе был бы бесконечным. Это позволяет, скажем, выполнить предложения первой части блока и не выполнять предложения, следующие за if (условие) break:
while (true) { // Здесь идут начальные предложения if (condition) break; // Здесь идут последующие предложения}
Совместимость:
Используется с 4-ой версии Flash
break - Прекращает выполнение цикла
break
(Предложение)
Прекращает выполнение цикла
Синтаксис:
break()
Описание:
В простом цикле проверочное выражение является единственным фактором, определяющим прекращение выполнения цикла. Когда проверочное предложение простого цикла дает значение false, цикл завершается. Однако если цикл становится более сложным, может потребоваться остановка его выполнения независимо от значения проверочного предложения. Для этого используются предложения break и continue.
Предложение break предоставляет способ остановить процесс, продолжать который нет больше необходимости.
Например, можно использовать цикл for-in в программе проверки формы, которая обходит переменные текстовых полей ввода на временной диаграмме. При обнаружении пустого поля ввода мы предупреждаем пользователя о том, что он неправильно заполнил форму.
Прекратить процесс можно, выполнив предложение break, как показано в приведенном далее примере.
Обратите внимание, что в примере предполагается существование клипа с именем form, который содержит ряд объявленных входных переменных с именами input01, input02 и т.д.:
for(var prop in form) { // Если это свойство служит одним из наших // "входных" текстовых полей if (prop.indexOf("input") != -1) { // Если в поле формы пусто, // прервать операцию if (form[prop] == "") { displayMessage = "Пожалуйста, заполните форму полностью."; break; } // Все подпредложения после команды break пропускаются, // когда выполнена break }}// Отсюда возобновляется выполнение после окончания цикла,// вызванного командой break или присваиванием проверочному// выражению значения false
Предложение break можно использовать для прерывания цикла, который иначе был бы бесконечным. Это позволяет, скажем, выполнить предложения первой части блока и не выполнять предложения, следующие за if (условие) break:
while (true) { // Здесь идут начальные предложения if (condition) break; // Здесь идут последующие предложения}
Совместимость:
Используется с 4-ой версии Flash
call - Выполнить сценарий удаленного клипа
call
(Глобальная функция)
Вызывает из текущего скрипта скрипт, который прикреплен к указываемому кадру
Синтаксис:
call(frameLabel)call(frameNumber)
Аргументы:
Описание:
Функция call() выполняет сценарий, прикрепленный к кадру с меткой frmaeLabel или номером frameNumber.
Например, следующий код выполняет сценарий кадра 20 текущей временной диаграммы:
call(20);
Во Flash 4 call() использовалась для создания грубого подобия многократно используемой подпрограммы (не способной принимать параметры и возвращать значение). Во Flash 5 предпочтительнее использовать предложение function.
Отметим, что во Flash 5 при удаленном вызове сценария через call() переменные, объявленные посредством ключевого слова var, считаются локальными для этого сеанса выполнения и прекращают свое существование по завершении сценария. Чтобы создать нелокальные переменные в удаленно выполняемом сценарии, опустите ключевое слово var:
// Локальная переменная; умрет после выполнения сценарияvar x = 10;// Переменная временной диаграммы; сохраняется по завершенииx = 10;
Для вызова call() с кадрами вне текущей временной диаграммы воспользуйтесь функцией tellTarget()
В следующем примере выполняется сценарий в кадре 10 клипа box:
tellTarget ("box") {call(10);}
Совместимость:
Используется с 4-ой версии Flash. В Flash 5 рекомендуется использовать команду function().
comment - Вставить комментарии
comment
Указывает начало комментария. Любой текст между ограничителем и знаком конца строки является комментарием и игнорируется интерпретатором ActionScript.
Синтаксис:
// comment
Аргументы:
Пример:
Этот скрипт использует двойной слеш для идентификации первой, третьей, пятой и седьмой строк, как комментариев:
// set the X position of the ball movie clipball = getProperty(ball._x);// set the Y position of the ball movie clipball = getProperty(ball._y);// set the X position of the kitty movie clipkitty = getProperty(kitty._x);// set the Y position of the kitty movie clipkitty_y = getProperty(kitty._y);
Совместимость:
Используется с 1-ой версии Flash
continue - Заново начинает текущий цикл
continue
(Предложение)
Фигурирует внутри некоторых типах операторов цикла
Синтаксис:
continue
Описание:
Предложение continue аналогично предложению break, поскольку прерывает текущую итерацию цикла, но в отличии от break возобновляет выполнение цикла с очередной естественной итерации.
Во всех типах циклов предложение continue прерывает текущую итерацию тела цикла, но при возобновлении цикла могут быть некоторые различия в зависимости от типа предложения цикла.
С помощью предложения continue можно сделать предложение тела цикла необязательным в зависимости от обстоятельств.
Например, в следующем коде мы перемещаем все экземпляры клипов, не являющиеся прозрачными, к левому краю рабочего стола и пропускаем тело цикла для прозрачных экземпляров:
for (var prop in _root) { if (typeof _root[prop] == "movieclip") { if (_root[prop]._alpha < 100) { continue; } _root[prop]._x = 0; }}
Совместимость:
Используется с 4-ой версии Flash
delete - Удаление объекта, элемента массива или переменной
delete
(Оператор)
Этот оператор используется для удаления из сценария объекта, свойства объекта, элемента массива или переменных.
Синтаксис:
delete identifier;
Аргументы:
Описание:
Оператор delete уничтожает объект или переменную, имя которой указывает identifier, и возвращает true если объект был успешно удален. В противном случае возвращает false.
Этот оператор полезен для высвобождения памяти, используемой скриптами, хотя, delete - оператор, который обычно применяется в формулировке:
delete x;
Оператор delete может не сработать и возвратить false если identifier не существует, или не может быть удален.
Предопределенные функции и объекты, также как и переменные, объявленные с помощью var, не могут быть удалены.
Чтобы избавить массив от ненужного именованного элемента, применяем оператор delete:
delete arrayName.elementName
Удаление именованного элемента разрушает как значение элемента, так и его контейнер, освобождая при этом память, занимаемую элементом и его содержимым. (При удалении нумерованных элементов оператор delete удаляет только значение, а контейнер сохраняет).
В следующих примерах создается объект, используется, а затем удаляется за ненадобностью:
account = new Object();account.name = "Jon";account.balance = 10000;...delete account;
В следующем примере удаляется свойство (property) объекта:
// создаем новый объект "account"account = new Object();// назначаем свойство name объекту accountaccount.name = "Jon";// удаляем свойствоdelete account.name;
Еще один пример удаления свойства объекта:
// создаем массив длиной 0array = new Array();// теперь его длина - 1array[0] = "abc";// добавляем еще один элемент - длина - 2array[1] = "def";// теперь - 3array[2] = "ghi";// удаляем array[2] но длина массива не меняется,delete array[2];
Следующие примеры демонстрируют действие delete на объектные ссылки:
// создаем объект, присваиваем переменной ref1 значение ссылки на негоref1 = new Object();ref1.name = "Jody";// копируем ссылочную переменную, а затем удаляем ref1ref2 = ref1;delete ref1;
Если бы ref1 не была бы скопирована в ref2, то и объект был бы удален, так как на него не осталось бы ни одной ссылки. Когда же мы удалим ref2, больше не останется ссылок на объект, и он будет удален, так как на него не будет ссылаться ни одна переменная.
Совместимость:
Используется с 5-ой версии Flash
duplicateMovieClip - Создать копию клипа
duplicateMovieClip
(Глобальная функция)
Эта функция позволяет создать копию существующего клипа
Синтаксис:
duplicateMovieClip(target, newname, depth);
Аргументы:
Описание:
Создает экземпляр муви-клипа во время проигрывания фильма. Дублирование всегда начинается с кадра номер 1, вне зависимости от того, на каком кадре был клип.
Дублированный клип наследует все преобразования (поворот, масштаб и пр.), применявшиеся к target, но не наследует его переменные временной диаграммы target.
Если удаляется родительский мувик, то дублированный - тоже удаляется. Используйте команду или метод removeMovieClip чтобы удалить экземпляр муви-клипа, созданного командой duplicateMovieClip.
Доступ к глобальной функции duplicateMovieClip() можно осуществить и как к методу клипа, но в таком формате не используется аргумент target.
Примеры:
// Копирует клип ball и дает копии имя ball2duplicateMovieClip(ball, "ball2", 0);// Перемещает созданный клип ball2,// чтобы его можно было видетьball2._x += 100;
Следующие строчки множат flower десять раз. Переменная i используется для того, чтобы создать уникальное имя и положить новый мувик на уникальную глубину.
on(release) {amount = 10;while(amount>0) {duplicateMovieClip (_root.flower, "mc" + i, i);setProperty("mc" + i, _x, random(275));setProperty("mc" + i, _y, random(275));setProperty("mc" + i, _alpha, random(275));setProperty("mc" + i, _xscale, random(50));setProperty("mc" + i, _yscale, random(50));i = i + 1;amount = amount-1;}}
Совместимость:
Используется с 4-ой версии Flash
evaluate - Создает новую пустую строку, и вставляет ;
evaluate
Создает новую пустую строку, и вставляет ; для того, чтобы можно было ввести свой код в строку Expression панели Actions.
Синтаксис:
statement;
Действие evaluate позволяет вызывать свои функции пользователю, который редактирует скрипт в режиме Normal Mode.
Совместимость:
Используется с 5-ой версии Flash
for - Многократно выполняет некоторый код
for
Многократно выполняет некоторый код
Синтаксис:
for (initialization; condition; next) { statements}
Цикл for помещает в заголовок цикла ключевые компоненты цикла, разделенные точкой с запятой. Перед первой итерацией цикла for выполняется предложение initialization (только один раз). Обычно оно используется для задания начального значения переменной итератора.
Как и в других циклах, если condition имеет значение true, выполняются statemets. В противном случае, цикл завершается.
В конце каждой итерации выполняется предложение next, перед очередной проверкой condition, позволяющей узнать, должен ли продолжаться цикл.
Примеры:
Типичный цикл for, который просто считает от 1 до 10.
for (var i = 1; i <= 10; i++) { trace("Число: "+i);}
Вот эквивалент этого примера, только составленный с помощью цикла while:
var i = 1;while (i <= 10) { trace("Число: "+i); i++;}
Допустим, нам нужно управлять в цикле более чем одним фактором.
В цикле for можно использовать более одной переменной-итератора, разделив их запятой.
for (var i = 1, j = 10; i <=10; i++, j--) { trace("i увеличивается: " + i); trace("j уменьшается: " + j);};
Совместимость:
Используется с 5-ой версии Flash
for...in - Цикл, используемый для перечисления свойств объекта
for...in
Цикл, используемый для перечисления свойств объекта.
Синтаксис:
for (var thisProp in object) { statements // Предложения обычно используют thisProp}
Вместо повторения серии предложений, пока заданное проверочное выражение не даст значения false, цикл for-in осуществляется по одной итерации для каждого свойства для заданного объекта.
Предложения for-in не требуют явного обновляющего предложения, поскольку число итераций цикла определяется числом свойств рассматриваемого объекта.
Предложения statements выполняются по одному разу для каждого свойства object;
На каждой итерации цикла переменная thisProp временно хранит строку, которая содержит имя свойства объекта, перечисляемого в данный момент. Это значение строки можно использовать во время каждой итерации, чтобы получить доступ к каждому свойству и обработать его.
Простейшим примером цикла for-in является сценарий, который перечисляет свойства объекта.
Примеры:
Создание объекта, а затем перечисление по пунктам его свойств с помощью цикла for-in
var ball = new Object();ball.radius = 12;ball.color = "red";ball.style = "beach";for (var prop in ball) { trace("balls has the property " + prop);}
Пример выведет следующее
balls has the property style balls has the property color balls has the property radius
Т.к. prop хранит имена свойств ball как строки, для извлечения значений этих свойств можно использовать prop с оператором []:
for (var prop in ball) { trace("balls." + prop + " is " + ball[prop]);}
Пример выведет:
ball.style is beach ball.color is red ball.radius is 12
Стоит обратить внимание, что свойства объекта, просматриваемые в цикле for-in, нумеруются в непредсказуемом порядке. Кроме того, предложения for-in не всегда перечисляют все свойства объекта. Если объект определен пользователем, перечисляются все свойства, включая унаследованные.
Но некоторые свойства встроенных объектов предложением for-in пропускаются. Например, этим циклом не перечисляются методы встроенных объектов. Если вы хотите использовать предложение for-in для работы со свойствами встроенного объекта, сначала создайте проверочный цикл для определения доступных свойств объекта.
Извлечение значений свойств с помощью цикла for-in предоставляет также отличную возможность обнаружения клипов, присутствующих на временной диаграмме.
Пример: Заполнение массива динамически идентифицируемыми клипами
var childClip = new Array();var childClipCount = 0;for(i in _root) { thisItem = _root[i]; if(typeof thisItem == "movieclip") { // Обратите внимание на постфиксный оператор инкрементирования childClip[childClipCount++] = thisItem; }}// После заполнения массива можно использовать его// для обработки клипов, которые в нем находятся// Поместить первый клип у левого края рабочего столаchildClip[0]._x = 0// Поместить второй клип у верхнего края рабочего столаchildClip[1]._y = 0
В приведенном примере при использовании в предложении for-in функция typeof дает удобный способ нахождения всех экземпляров клипа на временной диаграмме.
Когда клипы определены, их можно присвоить массиву для проведения программной обработки.
Цикл for-in также можно использовать для извлечения элементов массива. В этом случае цикл примет вид:
for (var thisElement in array) { statements;}
Пример: Перечисление элементов массива
var myArr = [123, 234, 345, 456];for( var elem in myArr) { trace(myArr[elem]);}
Совместимость:
Используется с 5-ой версии Flash
fscommand - Передача данных браузеру
fscommand
(Глобальная функция)
Позволяет отправить данные программе, которая запустила данный клип
Синтаксис:
fscommand(command, arguments)
Аргументы:
Описание:
С помощью функции fscommand(), фильм Flash может связываться с автономным проигрывателем или приложением-хозяином проигрывателя:средой, в которой выполняется Flash Player (веб-браузером или Macromedia Director).
Функция fscommand() обычно используется одним из трех способов:
При использовании с автономным плеером fscommand() принимает одну из встроенных пар команда/аргумент, как показано в следующей таблице:
Пары команда/аргумент в автономном проигрывателе
При использовании в браузере функция fscommand() в фильме влечет вызов специальной функции JavaScript (Netscape) или VBScript (Internet Explorer) на странице, содержащей фильм. Имя этой специальной функции имеет общий вид movieID_DoFSCommand, где movieID является именем, указанным в атрибуте фильма OBJECT ID (Internet Explorer) или атрибутом EMBED NAME (Netscape) в содержащем фильм документе HTML. При вызове movieID_DoFSCommand() значения параметров fscommand() command и arguments передаются в качестве аргументов функции movieID_DoFSCommand(). Если на содержащей фильм странице не существует функции movieID_DoFSCommand(), происходит отказ функции fscommand() без каких-либо сообщений.
Обратите внимание, что для работы fscommand() с Netscape атрибут swLiveConnect тега фильма EMBED должен быть задан как "true":
<EMBEDNAME="testmoviequot;SRC="myMovie.swf"WIDTH="100%"HEIGHT="100%"swLiveConnect="true"PLUGINSPAGE="http://www.macromedia.com/go/flashplayer/"></EMBED>
Связь с браузером через fscommand() невозможна в следующих конфигурациях системы:
Стоит отметить, что fscommand() не всегда дает лучший способ связи с фильмом Director из Flash. Предпочтительным средством коммуникации с Director является функция getURL() с протоколом event: или lingo:.
Примеры:
Чтобы выйти из автономного проектора, используйте такой код:
fscommand("quit");
Чтобы создать автономный проектор, выполняемый в полноэкранном режиме:
fscommand("fullscreen", "true");
Чтобы создать автономный проектор, выполняемый в полноэкранном режиме, но сохраняющий размер исходного фильма:
fscommand("fullscreen", "true");fscommand("allowscale", "false");
Для запуска Notepad на большинстве систем Windows можно использовать:
fscommand("exec", "C:/WINDOWS/NOTEPAD.EXE");
В следующем коде показана страница HTML с командами JavaScript и VBScript, необходимыми для ответа на простой вызов fscommand() в фильме. Обратите внимание, что функция VBScript просто вызывает функцию JavaScript - это позволяет работать как в Internet Explorer, так и в Netscape с помощью одной функции JavaScript:
<HTML><HEAD><TITLE>fscommand demo</TITLE><SCRIPT LANGUAGE="JavaScript"><!--function testmovie_DoFSCommand(command, args) { alert("Здесь данные из Flash: "+command+", "+args);}//--></SCRIPT><SCRIPT LANGUAGE="VBScript"><!--Sub testmovieFSCommand(ByVal command, ByVal args) call testmovie_DoFSCommand(command, args)end sub//--></SCRIPT></HEAD><BODY><OBJECT ID="testmovie" CLASSID="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" WIDTH="100%" HEIGHT="100%" CODEBASE="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab"><PARAM NAME="MOVIE" VALUE="flash-to-javascript.swf"><EMBED NAME="testmovie" SRC="flash-to-javascript.swf" WIDTH="100%" HEIGHT="100%" swLiveConnect="true" PLUGINSPACE="http://www.macromedia.com/go/flashplayer/"</EMBED></OBJECT></BODY></HTML>
Чтобы вызвать предшествующую функцию JavaScript testmovie_DoFSCommand() из фильма flash-to-javascript.swf, можно использовать:
fscommand("hello", "world");
Совместимость:
Используется с 4-ой версии Flash
function - Создает новую функцию
function
Определяет набор операторов, которые вы определили для выполнения определенной задачи. Вы можете декларировать (declare), или определить (define), функцию в том же месте, где вы ее вызываете, или в любом другом месте муви-клипа. При определении функции, вы можете также определить ее аргументы. Туда можно поместить при вызове некоторые значения, которыми оперирует функция при ее вызове. Каждый раз, когда заново вызывается функция, можно вызывать ее с другими аргументами.
Синтаксис:
function functionname ([argument0, argument1,...argumentN]){ statement(s)}function ([argument0, argument1,...argumentN]){ statement(s)}
Аргументы:
Используйте оператор return в теле функции statement(s), чтобы заставить функцию возвратить какое-либо значение.
Вариант использования номер раз: Определяем function с определенными functionname, arguments, и statement(s). Во время вызова имени функции, на самом деле вызывается описание этой функции с нужными параметрами. Разрешен вызов функции до того, как она определена в Action list, то есть функция может быть объявлена после того, как к ней обратились.
Вариант использования номер два: Создаем безыменную функцию и возвращаем ее. Такой вариант используется в выражениях, кроме того, он частично полезен при создании методов в объектах. Вариант 1) В следующем примере создается функция sqr, которая принимает один аргумент (число), возвращая его квадрат. Обратите внимание, что в этом скрипте объявление функции стоит после ее вызова.
y=sqr(3);function sqr(x) { return x*x;}
(Вариант 2) Следующий пример создает объект Окружность (Circle):
function Circle(radius) { this.radius = radius;}
А здесь создается безымянная функция, которая считает площадь круга и присоединяет ее значение, как метод, объекту Окружность (Circle):
Circle.prototype.area = function () { return Math.PI * this.radius * this.radius}
Совместимость:
Используется с 5-ой версии Flash
getURL - Переход на веб-страницу
getURL
(Глобальная функция)
Загружает документ с указанного адреса (URL) в окно, или передает переменные другому приложению по URL (выполняет сценарии на стороне сервера), либо генерирует событие Macromedia Director.
Синтаксис:
getURL(URL)getURL(URL, window)getURL(URL, window, method)
Аргументы:
Описание:
Функция getURL() используется для того, чтобы:
Чтобы загрузить документ в текущее окно или фрейм, просто укажите URL документа, не передавая аргументы window или method. Естественно, Flash поддерживает абсолютные URL (такие, в которых указаны протокол, например, "http:", а также имя сервера или аппаратного устройства) и относительные URL (те, которые заданы относительно текущего адреса):
// Абсолютный URL веб-страницыgetURL("http://spravkaweb.ru/");// Абсолютный URL локального файлаgetURL("file:///f:/www/example.html");// Относительный URL, предполагается протокол httpgetURL("/resource/resource.html");
Чтобы загрузить документ в окно или фрейм, имеющие имя, укажите это имя в качестве аргумента window:
// Загрузить в именованный фреймgetURL("http://spravkaweb.ru/", "myFrame");// Загрузить в именованное окноgetURL("http://spravkaweb.ru/", "myWindow");
Чтобы заменить набор фреймов, в котором содержится текущий фильм, дайте аргументу window заначение "_parent":
getURL("http://spravkaweb.ru/", "_parent");
Чтобы заменить загружаемым документом все наборы фреймов на странице, дайте аргументу window значение "_top":
getURL("http://spravkaweb.ru/", "_top");
Чтобы открыть загружаемый документ в новом анонимном окне браузера, дайте аргументу window значение "_blank":
getURL("http://spravkaweb.ru/", "_blank");
Нужно отметить, что открытие нового окна с помощью "_blank" лишает нас всякого контроля над внешним видом нового окна (размером, конфигурацией панелей управления, местонахождением и т.д.). Чтобы открывать настраиваемые окна с помощью getURL(), нужно вызвать на содержащей фильм странице функцию JavaScript.
С помощью функции getURL() можно также посылать переменные удаленным приложениям или сценариям на сервере. Чтобы передать переменные текущей временной диаграммы во внешний сценарий, нужно указать имя сценария в качестве аргумента URL и задать "GET" или "POST" в качестве значения аргумента method:
getURL("http://spravkaweb.ru/php.php", "_blank", "GET");
При вызове в качестве метода клипа getURL() посылает переменные временной диаграммы этого клипа:
// Передает переменные myClip в example.phpmyClip.getURL("http://spravkaweb.ru/example.php", "_blank", "GET");
Результаты выполнения сценария появятся в окне или фрейме, указанных в аргументе window (который необходимо задавать при передаче переменных).
Чтобы загрузить результаты выполнения сценария в текущие фрейм или окно, нужно задать в качестве аргумента window значение "_self":
getURL("http://spravkaweb.ru/", "_self", "GET");
Если значением аргумента method является "GET", переменные временной диаграммы текущего клипа посылаются в виде строки запроса, присоединенной к URL сценария в запросе HTTP GET. Строки запросов состоят из пар имя/значение, разделяемых амперандами (&):
getURL("http://www.mysite.ru/example.php?ss=2&pl=34", "_self");
Если аргумент method содержит "POST", переменные временной диаграммы текущего клипа посылаются сценарию в виде отдельного блока данных после заголовка запроса HTTP POST (так же, как в обычной форме HTML, использующей метод POST). Обратите внимание, что "POST" недоступен в автономном Flash Player.
Поскольку для большинства веб-серверов максимальная допустимая длина URL лежит между 255 и 1024 символами, при передаче больших объемов данных используйте "POST", а не "GET".
Надо отметить, что любые данные, возвращаемые сценарием, который вызван getURL(), выводятся как обычное веб-содержание в браузере, а не во Flash. Чтобы получить результаты выполнения сценария во Flash, используйте loadVariables().
Функция getURL() может применяться и с другими протоколами помимо "http:".
Протоколы, поддерживаемые getURL
Как показывает вышеприведенная таблица, если принадлежность Flash импортируется в файл Macromedia Director, с помощью getURL() можно генерировать события Lingo или выполнять команды Lingo. (Lingo - это язык сценариев в Director, аналогичный ActionScript).
Например, можно добавить событие кадра такого вида:
getURL("event: eventName params");
что приведет к вызову в Director обработчика события Lingo с именем on eventName.Вот команда getURL(), генерирующая событие с именем "myEvent" и передающая ему строку "A". Обратите внимание на преобразование символа с помощью:
// Отправить событие в DirectorgetURL("event: myEvent "A"");
Вот обработчик события Lingo sprite, который должен быть прикреплен к спрайту Flash в Director, чтобы получить событие. Заметим, что спрайт в Director примерно соответствует экземпляру клипа во Flash; ключевое слово Lingo put родственно команде ActionScript trace(), а && в Lingo является оператором конкатенации строк:
on myEvent msgput "The message received from Flash was " && msgend
Можно также спровоцировать запуск Lingo из спрайта Flash в Director с помощью ключевого слова "lingo:":
// Пусть Director даст звуковой сигналgetURL("lingo: beep");
Наконец, с помощью getURL() можно выполнять код JavaScript.Вызовем простую функцию alter JavaScript с помощью getURL():
getURL("javascript: alter("Hello world");");
Примеры:
Далее приведен стандартный код кнопки со ссылкой на веб-страницу:
on(release) {getURL("http://www.spravkaweb.ru/");}
Совместимость:
Используется со 2-ей версии Flash. В 4-ой версии усилена добавлением параметра method.
if - Выполнение или не выполнение предложений в зависимости от условий
if
Позволяет выполнить или не выполняет определенные предложения в зависимости от заданного условия
Синтаксис:
if (condition) { statements}
Аргументы:
В целом, предложение if завершается закрывающей фигурной скобкой (}) без замыкающей точки с запятой.
Условие condition предложения if может быть любым допустимым выражением. При выполнении предложения if, интерпретатор проверяет значение этого выражения (которое еще называется проверочным выражением).
Если оно равно true, то выполняется statements. В противном случае statements не выполняются.
Примеры:
Пример: Операция сравнения возвращает булево значение.
// Положение мыши по горизонталиvar varX = _xmouse;// Если varX > 300 дает trueif (varX > 300) { // выполняется предложение trace("Мышь находится за отметкой 300 пикселов");}
Надо заметить, что проверочное выражение условного предложения не обязательно должно давать в результате булево значение - годится любое выражение.
Пример: Проверочное выражение - число или строка.
if ("hi") { trace("Условие выполнено!");}if (4) { trace("Условие выполнено!");}
Когда проверочное выражение условного предложения не является булевым, интерпретатор преобразует его в булево. Например, интерпретатор преобразует "hi" в false, потому что все нечисловые строки при использовании в булевом контексте принимают значение false. Поэтому условие не выполнено, и первое предложение trace() тоже не выполняется.
Аналогично, интерпретатор преобразует число 4 в true (любое ненулевое число преобразуется в true), поэтому второе предложение trace() выполняется.
Пример: Применение оператора ИЛИ.
lastName = "";firstName = "";if (firstName != "" || lastName != "") { trace("Welcome " + firstName + " " + lastName);}
Пример: Проверка существования клипа.
if (myClip) { myClip._x = 0; // Если myClip существует, поместить его} // на левый край рабочего стола
Совместимость:
Используется с 4-ой версии Flash
ifFrameLoaded - Выполняет код если загруженн определенный кадр
ifFrameLoaded
(Предложение)
Выполняет некоторый код, если загружен определенный кадр
Синтаксис:
ifFrameLoaded(scene, frame) { statement;}ifFrameLoaded(frame) { statement;}
Аргументы:
Описание:
Проверяет, доступно ли содержимое указанного кадра локально (скачано ли уже?). Используйте для создания прелоадера, то есть небольшой анимации, пока загружается остальная часть фильма. Разница между использованием _framesloaded и ifFrameLoaded() в том, что _framesloaded позволяет добавить if, или else, в то время, как ifFrameLoaded() позволяет указать количество кадров в одном простом выражении.
Начиная с Flash 4 следует использовать свойства _totalframes и _framesloaded с предложениями if-else для создания более гибкого предварительного загрузчика.
Пример:
if (_totalframes > 0 && _framesloaded == _totalframes) {gotoAndPlay("beginFrame");} else {gotoAndPlay(_currentframe - 1);}
Совместимость:
Используется с 3-ей версии Flash. Действие ifFrameLoaded устарело в Flash 5; используйте вместо него _framesloaded
include - Импорт текста из внешнего файла ActionScript
include
Включает содержимое файла, во время того, как клип тестируется, публикуется или экспортируется.
Синтаксис:
#include path
Аргументы:
Директива #include загружает в текущий сценарий текст сценария из внешнего текстового файла (предпочтительно с расширением .as), помещая его прямо в то место, где находится команда #include.
Операция #include осуществляется на этапе компиляции, и это означает, что включаемый в фильм текст существовал во время тестирования, экспорта или публикации из среды разработки. Изменения, произведенные во внешнем файле после экспорта фильма, не будут отражены в фильме. Чтобы добавить эти изменения в фильм, его нужно повторно экспортировать.
Директива #include используется для включения одного и того же блока кода в несколько сценариев или в разные проекты Flash (подобно тому, как используется внешняя библиотека принадлежностей Flash). Это следует делать для централизации кода, сопровождения кода в системе контроля версий (например, CVS или Microsoft Visual Source Safe), либо при использовании внешнего текстового редактора, который предпочтительней редактора ActionScript.
Это удобно и тогда, когда программист работает отдельно от, скажем, разработчика графических анимаций Flash. Внешние файлы удобны при использовании хранилищ кода, например, библиотек функций, независимых от текущей временной диаграммы или клипа. Менее полезными она оказываются в коде, который требует тесной интеграции с файлом Flash.
Следует заметить, что директива #include начинается с символа # и не должна заканчиваться точкой с запятой. Любое предложение #include, завершающееся точкой с запятой, вызовет ошибку и не выполнит импорта внешнего сценария. Если файла по указанному пути нет, директива вызовет ошибку, и внешний файл не будет включен.
При выполнении синтаксической проверки по команде Check Syntax (Ctrl-T или Command-T) меню панели Actions (которое находится под кнопкой со стрелкой в правом верхнем углу панели) текст во внешнем файле тоже проверяется.
Примеры:
Следующий код импортирует внешний файл .as с именем myScript.as в текущий файл .fla. При использовании относительного пути myScript.as должен быть в той же папке, что и файл .fla, содержащий директиву включения:
#include "myScript.as"
Можно построить относительный путь, содержащий подкаталог. В следующем коде предполагается, что mySqcript.as находится на один уровень ниже текущего файла .fla в подкаталоге с именем includes:
#include "includes/myScript.as"
Для обозначения папки над текущей используются две точки. В следующем примере предполагается, что myScript.as находится на один уровень выше текущего файла .fla:
#include "../myScript.as"
В следующем коде предполагается, что myScript.as находится в каталоге includes, на том же уровне, что и подкаталог, содержащий текущий файл .fla:
#include "../includes/myScript.as"
Можно задавать и абсолютный путь к любой папке, например:
#include "C:/WINDOWS/Desktop/myScript.as"
Совместимость:
Используется с 5-ой версии Flash
loadMovie - Загрузить файл .swf
loadMovie
(Глобальная функция)
Позволяет загрузить в проигрыватель файл .swf.
Синтаксис:
loadMovie(URL, target)loadMovie(URL, target, method)
Аргументы:
Описание:
Функция loadMovie() импортирует во Flash Player файл .swf, размещенный по адресу URL.
Если target является ссылкой на существующий клип или строкой, задающей путь к клипу, загруженный файл .swf будет помещен в указанный клип (вызывая удаление предшествующего содержимого). Чтобы загрузить фильм в текущий клип, используйте в качестве параметра target пустую строку:
loadMovie("myMovie.swf", "")
Если target является ссылкой на существующий уровень документа (например, _level2) или строкой, указывающей путь к уровню документа (например, "_level2"), то файл .swf помещается на указанный уровень документа. Загрузка фильма на уровень _level0 очищает проигрыватель от всего содержимого и помещает новый файл .swf на уровень _level0.
Можно посылать переменные вместе с вызовом loadMovie(), и тогда URL обычно является адресом сценария, возвращающего файл .swf, соответствующий переданным переменным. Чтобы отправить переменные при вызове loadMovie(), включается аргумент method (заданный в "GET" или "POST"). "GET" посылает переменные временной диаграммы текущего клипа в виде строки запроса, присоединенный к URL сценария. "POST" посылает переменные временной диаграммы текущего клипа после заголовка HTTP для запроса POST. Метод "POST" недоступен в автономном Flash Player. Поскольку у большинства веб-серверов длина URL ограничена величиной от 255 до 1024 символов, для передачи больших объемов данных используйте "POST", а не "GET".
Вызовы loadMovie() над веб-сервером, использующие метод "GET", могут передавать переменные в загруженный фильм без вмешательства сценария.
Например, загрузим внешний фильм myMovie.swf на уровень 1 стека документов проигрывателя, передав ему переменные текущей временной диаграммы:
loadMovie("myMovie.swf", "_level1", "GET");
Переменные, передаваемые в загружаемый фильм, определяются на главной временной диаграмме этого фильма. Этот прием действует только при обработке запроса loadMovie() веб-сервером. Попытки использовать метод "GET" в loadMovie() для локальных файлов вызывают ошибку.
Некоторые особенности:
Будьте осторожны при использовании ссылок на клипы и уровни в качестве аргумента target функции loadMovie(). Если аргумент target дает значение undefined, то функция loadMovie() использует в качестве target текущую временную диаграмму.
Аналогично, ссылки target, дающие пустую строку, заставляют loadMovie() действовать над текущей временной диаграммой. В частности, этим вызываются проблемы при загрузке фильмов на новые незанятые уровни.
Рассмотрим следующий код:
loadMovie("myMovie.swf", _level1);
Если до выполнения этого предложения объект _level1 не существовал, то этот код загрузит файл myMovie.swf во временную диаграмму, содержавшую предложение loadMovie(), а не на _level1! Чтобы избежать этой проблемы, вместо loadMovie() можно использовать loadMovieNum(). Кроме того, можно указать строку в качестве параметра target для loadMovie():
loadMovie("myMovie.swf", "_level1");
В этом случае уровень будет создан, если его еще не существует ( только _level0 существует по умолчанию во всех фильмах).
Пример:
// Поместить myMovie.swf на level 1loadMovie("myMovie.swf", "_level1");// Поместить myMovie.swf на level 0loadMovie("myMovie.swf", "_level0");// Поместить myMovie.swf в myCliploadMovie("myMovie.swf", "myClip");// Заменить содержимое проигрывателя на// coolmovie.swf, использую абсолютный путьloadMovie("http://www.yousite.ru/coolmovie.swf", "_level0");// Загрузить фильм на уровень 1 с рабочего стола Windows.loadMovie("file:///C:/WINDOWS/Desktop/myMovie.swf", "_level1");
Совместимость:
Используется с 4-ой версии Flash
loadMovieNum - Загрузить файл .swf
loadMovieNum
(Глобальная функция)
Позволяет загрузить в проигрыватель файл .swf
Синтаксис:
loadMovieNum(URL, level)loadMovieNum(URL, level, method)
Аргументы:
Описание:
Функция loadMovieNum() почти идентична loadMovie(), но требует задания целевого уровня загрузки в виде числа, а не строки. Это означает, что loadMovieNum() может загружать фильмы только на уровни документов, а не в клипы. Если указанного уровня не существует, он будет создан. Если указанный уровень существует, его содержимое будет заменено новым файлом .swf. Допускается загрузка фильма на _level2, даже если _level1 не создан.
Функцию loadMovieNum() можно использовать, когда нужно динамически задавать уровень для загрузки фильма, например:
var x = 3;loadMovieNum("muMovie.swf", x);
Того же самого можно достичь путем конкатенации строк и использования обычной функции loadMovie():
loadMovie("muMovie.swf", "_level" + x);
Совместимость:
Используется с 3-ей версии Flash
loadVariables - Загружает в клип или фильм внешние переменные
loadVariables
(Глобальная функция)
Загружает в клип или фильм внешние переменные
Синтаксис:
loadVariables (url, target); loadVariables (url, target, method);
Аргументы:
Обычно переменные внутри фильмов определяются при помощи ActionScript. Однако посредством loadVariables() можно также импортировать в клип переменные из текстового файла или выполняемого на сервере приложения - например, сценария PHP. Областью видимости для переменных, загружаемых через loadVariables(), является клип или уровень, указанные в target, а типом данных всегда является string. Для прикрепления загруженных переменных к текущей временной диаграмме нужно использовать в качестве значения аргумента target пустую строку.
Примеры:
Пример: Прикрепление переменных к текущей временной диаграмме.
loadariables("myVars.txt", "");// Загружаем переменные из myVars.txt// в текущую временную диаграмму
Вне зависимости от того, будут ли загружаемые переменные находиться в текстовом файле, или из создает сценарий, они должны иметь формат, соответствующий кодировке URL:
Следующий пример покажет содержимое текстового файла, импортируемого во Flash посредством loadVariables().
Пример: Импортирование из файла переменных name и address.
name=Jon&address=65+malkom+st%21// name присваивается значение "Jon"// address присваивается значение "65 malkom st!"
Текстовой файл, который используется в loadVariables(), является обычным текстовым файлом, содержащим переменные в кодировке URL, как показано выше. Для загрузки переменных из внешнего текстового файла путь к файлу указывается как аргумент URL в вызове функции loadVariables().
Пример: Загрузка переменных в главную временную диаграмму.
// Загрузить переменные из myVar.txt// в главную временную диаграмму фильмаloadVariables("myVar.txt", "_root");
loadVariables() также можно использовать со сценарием или приложением сервера, выводящим переменные в кодировке URL. Когда сценарий посылает переменные в фильм Flash в ответ на вызов функции loadVariables(), он должен задать MIME-тип данных как "application/x-www-urlform-encoded".
На равне с приемом переменных, функция loadVariables() также может передавать переменные в сценарий на стороне сервера. Чтобы отправить в сценарий все переменные, определенные в текущей временной диаграмме, аргумент method при вызове функции loadVariables() задается равным "GET" или "POST". Переменные пересылаются в формате кодировки URL.
Если method задан как "GET", переменные передаются как строка запроса в URL сценария.
Если method установлен как "POST", переменные посылаются после заголовка HTTP POST.
Т.к. для большинства веб-серверов максимальная длина URL лежит между 255 и 1024 символами, при передаче больших объемов данных используйте "POST", а не "GET".
Из соображений безопасности loadVariables() действует только с хостами домена, из которого был загружен фильм. Правила, которым подчиняется loadVariables(), перечислены в следующей таблице.
Эти меры безопасности оказывают воздействие только на подключаемые модули и на элементы ActiveX браузера Flash Player; автономный проигрыватель может загружать переменные из любого домена.
Ограничения на домены являются умышленной защитной функцией во Flash, но их можно обойти с помощью прокси-сценария, выполняемого на сайте X, действующего как посредник между Flash и сайтом Y, или псевдонима DNS на сайте X, который указывает на сайт Y. Дополнительную информацию по данному вопросу можно получить по адресу: http://www.macromedia.com/support/flash/ts/documents/loadvars_security.htm.
Результаты многократных обращений loadVariables() по одному и тому же URL сценария могут некоторыми браузерами кэшироваться, в результате чего новые данные с сервера не загружаются. Чтобы избежать этой проблемы, добавляйте в каждый вызов loadVariables() фиктивную переменную, чтобы URL оказался уникальным.
Пример: Генерация уникального URL.
loadVariables("http://www.mysite.ru/myScript.php?var=" + getTimer(), serverResponse);
Использование обработчика события data с функцией loadVariables().
Если у сервера запрашивается ряд переменных с помощью функции loadVariables(), необходимо дождаться их полной загрузки, прежде чем использовать содержащиеся в них данные.
Когда клип получает всю группу загружаемых переменных, генерируется событие data, которое указывает, что можно выполнять код, зависящий от этих переменных.
Допустим, например, что имеется фильм гостевой книги, в которую пользователи вводят свои комментарии, а эти комментарии сохраняются на сервере. Если пользователь хочет просмотреть комментарий, тот запрашивается с сервера с помощью loadVariables(). Но прежде чем начать вывод комментария, необходимо сделать остановку на экране загрузки, пока не станет известно, что запрошенные данные доступны. Обработчик события data извещает о том, что данные загружены, после чего можно вывести комментарий пользователю.
В нижеприведенном примере приведен отрывок кода гостевой книги, показывающий использование обработчика события data с функцией loadVariables(). В этом примере есть кнопка, с помощью которой две переменные в кодировке URL загружаются из текстового файла в клип. В клипе имеется обработчик события data, который выполняется, когда эти две переменные загружены. Обработчик отображает значения этих двух переменных. Безопасность вывода этих двух переменных гарантируется тем, что код обработчика выполняется только при генерации события data (т.е. после получения данных).
Пример: Ожидание события data.
// Содержимое файла guest.txtname=Jon&message=hello// Кнопка внутри клипаon (release) { this.loadVariables("guest.txt");}// Обработчик в клипеonClipEvent (data) { trace(name); trace(message);}
Ошибки в реализации:
Метод POST не поддерживается в Internet Explorer 4.5 для Macintosh. Эта проблема была исправлена в версии 5 браузера.
Совместимость:
Используется с 4-ой версии Flash
loadVariablesNum - Прикрепляет группу внешних переменных к уровню документа
loadVariablesNum
(Глобальная функция)
Прикрепляет группу внешних переменных к уровню документа
Синтаксис:
loadVariablesNum (url, level); loadVariablesNum (url, level, method);
Аргументы:
Функция loadVariablesNum() почти идентична loadVariables(), но требует задания целевого level как числа, а не как строки. Это значит, что loadVariablesNum() может прикреплять переменные только к уровням документов, а не к клипам. Целевой уровень можно задавать динамически.
Примеры
Пример: Задание целевого уровня динамически.
var myLevel = 3;loadVariablesNum("Vars.txt", myLevel);
Того же самого эффекта можно добиться путем конкатенации строк и использования обычной функции loadVariables().
loadVariables("Vars.txt", "_level" + myLevel);
Совместимость:
Используется с 5-ой версии Flash
print - Вывод на печать кадров фильма или клипа с использованием векторной графики
(Глобальная функция)
Вывод на печать кадров фильма или клипа с использованием векторной графики
Синтаксис:
print(target, boundingBox)
Аргументы:
Печать фильма Flash с помощью встроенной функции печати браузера происходит не единообразно и часто дает опечатки низкого качества. С помощью функции print() можно печатать содержимое фильма точно и с высоким качеством прямо из Flash. По умолчанию print() отправляет на печать все кадры с временной диаграммы target, по одному кадру на страницу, обрезая их в соответствии с аргументом boundingBox. Для печати избранных кадров им присваивается метка #P.
Функция print() посылает на PostScript-принтеры непосредственно векторную графику, а на принтеры без поддержки PostScript - графику, преобразованную в растровые изображения. Так как print() использует векторы, с ее помощью нельзя печатать фильм с преобразованиями прозрачности или цвета. Для печати фильмов с цветовыми эффектами используется функция printAsBitmap().
Во Flash r20 и выше возможности различных функций print() Flash 5 доступны в виде модифицированного действия getURL() Action. За подробностями обращайтесь к Macromedia Flash Printing SDK по адресу:http://www.macromedia.com/software/flash/open/webprinting/authoring.html
Примеры:
Пример: Распечатка фильма.
// Напечатать все кадры главной временной диаграммы,// задав размер каждого из них так, чтобы он занимал всю страницуprint("_root", "bframe");// Напечатать все кадры главной временной диаграммы,// изменив размер каждого соответственно общему размеру всех кадровprint("_root", "bmax");
При щелчке по кнопке со следующим кодом Flash выводит на печать все кадры на временной диаграмме кнопки, обрезанные по рамке границ кадра с меткой #b и с размером на всю страницу:
on (release) { print(this, "bmovie");}
Совместимость:
Используется с 5-ой версии Flash
printNum - Печать кадров уровня документа как векторных изображений
printNum
(Глобальная функция)
Печать кадров уровня документа как векторных изображений
Синтаксис:
printNum(level, boundingBox)
Аргументы:
Функция printNum() почти идентична print(), но требует задания целевого уровня level для операции печати в виде числа, а не строки. Это означает, что printNum() может печатать только уровни документов, а не клипы фильмов. Обычно она используется, когда нужно динамически назначить выводимый на печать уровень фильма.
Примеры:
Пример: Распечатка уровня фильма.
var x = 3;printNum(x, "bmax");
Того же самого можно достичь с помощью конкатенации строк и использования обычной функции print():
print("_level" + x, "bmax");
Совместимость:
Используется с 5-ой версии Flash
printAsBitmap - Вывод на печать кадров фильма или клипа с использованием растровой графики
printAsBitmap
(Глобальная функция)
Вывод на печать кадров фильма или клипа с использованием растровой графики
Синтаксис:
printAsBitmap(target, boundingBox)
Аргументы:
Функция printAsBitmap() по своему действию идентична print(), за исключением того, что выводит не векторы, а растрированное содержимое. В результате она может успешно печатать фильмы с преобразованием цвета, но дает результаты более низкого качества для векторной графики.
Во Flash r20 и выше возможности различных функций printAsBitmap() Flash 5 доступны в виде модифицированного действия getURL() Action. За подробностями обращайтесь к Macromedia Flash Printing SDK по адресу: http://www.macromedia.com/software/flash/open/webprinting/authoring.html
Примеры:
Пример: Распечатка фильма.
// Напечатать все кадры главной временной диаграммы,// задав размер каждого из них так, чтобы он занимал всю страницуprintAsBitmap("_root", "bframe");// Напечатать все кадры главной временной диаграммы,// изменив размер каждого соответственно общему размеру всех кадровprintAsBitmap("_root", "bmax");
При щелчке по кнопке со следующим кодом Flash выводит на печать все кадры на временной диаграмме кнопки, обрезанные по рамке границ кадра с меткой #b и с размером на всю страницу:
on (release) { printAsBitmap(this, "bmovie");}
Совместимость:
Используется с 5-ой версии Flash
printAsBitmapNum - Печать кадров уровня документа как растровых изображений
printAsBitmapNum
(Глобальная функция)
Печать кадров уровня документа как растровых изображений
Синтаксис:
printAsBitmapNum(level, boundingBox)
Аргументы:
Функция printAsBitmapNum() почти идентична printAsBitmap(), но требует задания целевого уровня level для операции печати в виде числа, а не строки. Это означает, что printAsBitmapNum() может печатать только уровни документов, а не клипы фильмов. Обычно она используется, когда нужно динамически назначить выводимый на печать уровень фильма.
Примеры:
Пример: Распечатка уровня фильма.
var x = 3;printAsBitmapNum(x, "bmax");
Того же самого можно достичь с помощью конкатенации строк и использования обычной функции printAsBitmap():
printAsBitmap("_level" + x, "bmax");
Совместимость:
Используется с 5-ой версии Flash
removeMovieClip - Удалить клип фильма из Flash Player
removeMovieClip
(Глобальная функция)
Удалить клип фильма из Flash Player.
Синтаксис:
removeMovieClip(target);
Аргументы:
Функция removeMovieClip() удаляет указанный клип фильма из проигрывателя, не оставляя следов содержимого или оболочки клипа. Последующие ссылки на клип или его переменные и свойства возвращают undefined.
Функцию removeMovieClip() можно использовать только с экземплярами клипов, созданными первоначально посредством duplicateMovieClip() или attachMovie(). На клипы фильмов, созданные в среде разработки, влияния не оказывает.
Совместимость:
Используется с 4-ой версии Flash.
Усилена во Flash 5 возможностью применения к экземплярам, создаваемых с помощью attachMovie().
return - Выходит из функции или возвращает ее значение
return
Выходит из функции или возвращает ее значение
Синтаксис:
return; return expression;
Аргументы:
Описание:
При вызове функции можно передавать ей одно или более значений (параметров или аргументов), участвующих в выполнении. Аналогично, функция может передавать обратно возвращаемое значение (значение, получаемое в результате выполнения функции и пересылаемое обратно вызвавшему). Для завершения выполнения функции и, если нужно, возврата значения, в ее теле используется предложение return.
Когда интерпретатор во время выполнения функции сталкивается с предложением return, он пропускает все оставшиеся в функции предложения.
Примеры:
Пример: Пропуск предложения после return.
function myFun(msg) { return; // Эта строка никогда не выполнится trace(msg);}
Этот пример не реалистичен, потому что предложение return всегда вызывает завершение функции до того, как будет достигнуто предложение trace(). Поэтому предложение return обычно является последним предложением функции, если только оно не используется внутри условного предложения.
Пример: Выход при неверном пароле.
var correctPass = "spravkaweb&quor;;function enterSite(pass) { if (pass != correctPass) { // Выйти, если пароль не верен return; } // Этот код достигается только при верном пароле gotoAndPlay("intro");}// Выход из функции будет досрочнымenterSite("cactus");// Выход из функции будет естественнымenterSite("spravkaweb");
Как предполагается самим именем, return приказывает интерпретатору возвратиться в место вызова функции. Если предложение return отсутствует, ActionScript действует так, как если бы последняя строка функции содержала предложение return:
fuction myFun(msg) { trace(msg); // В таком контексте эта строка совершенно лишняя return;}
Независимо от того, является предложение return подразумеваемым или явным, по окончании работы функции выполнение возобновляется со строчки кода, следующей за предложением вызова функции.
// Выполняем код функции myFun()myFun("Hi!");// По завершении функции myFun() выполнение возобновляется здесьtrace("World");
Как мы видели ранее, return всегда завершает функцию. Но его можно также использовать для возврата значений в сценарий, который вызвал функцию.
Пример: Определим функцию, складывающую три числа.
function sum(a, b, c) { return a + b + c;}// Вызовем функциюvar total = sum(5,6,2); // Возвратит 13
Выражение или результат, возвращаемое предложением return, называется возвращаемым значением функции.
Следует обратить внимание, что функция sum() просто вычисляет и возвращает сумму трех чисел. Она не совершает явного действия. Использовать возвращаемое функцией значение можно, присвоив его переменной.
var total = sum (1,2,3); // total = 11var greet = sum ("Hello ", "world", "!"); // greet = "Hello world!"
Результатом вызова функции является обычное выражение. Поэтому его можно использовать в других выражениях.
Совместимость:
Используется с 5-ой версии Flash
setProperty - Присвоить значение свойству клипа фильма
setProperty
Присвоить значение свойству клипа фильма
Синтаксис:
setProperty(movieClip, property, value);
Аргументы:
Описание:
Функция setProperty() присваивает value одному из встроенных свойств movieClip. Ее нельзя использовать для установки свойств, определенных пользователем. Во Flash 4 setProperty() была единственным способом присвоения значений свойствам клипа; начиная с Flash 5 наиболее предпочтительными способами задания как встроенных, так и пользовательских свойств являются операторы и [].
Примеры:
// Повернуть главный фильм на 45 градусовsetProperty("_root", _rotation, 45);// То же самое, только без setProperty()_root._rotation = 45;
При нажатии кнопки, следующий пример присваивает свойству _alpha мувиклипа star значение равное 30 процентам:
on(release) {setProperty("star", _alpha, 30);}
Совместимость:
Используется с 4-ой версии Flash
startDrag - Заставляет фильм или клип следовать за курсором мыши
startDrag
Заставляет фильм или клип следовать за курсором мыши
Синтаксис:
startDrag(target);startDrag(target, lockCenter);startDrag(target, lockCenter, left, top, right, bottom);
Аргументы:
Описание:
Функция startDrag() вызывает зрительное перемещение target за курсором мыши по проигрывателю (называемое также буксировкой (dragging) клипа). Перемещение буксируемого клипа можно ограничить рамкой, координаты которой передаются в качестве аргументов функции startDrag(). Координаты ограничивающей рамки задаются относительно холста, на котором расположен target. Если холстом является рабочий стол главного фильма, то точка (0,0) является левым верхним углом рабочего стола. Если холстом является клип фильма, то (0,0) обозначает точку регистрации холста клипа. Следует обратить внимание, что координатная система Flash переворачивает декартову ось Y: значения Y возрастают в направлении к нижней части экрана и убывают в направлении верхней части экрана. Отрицательные значения Y находятся выше начала координат (т.е. над осью X).
Буксировку можно прекратить в любой момент с помощью функции stopDrag(). В каждый конкретный момент можно буксировать только один клип или фильм, поэтому вызов функции startDrag() с новым target автоматически прекращает текущую операцию буксировки. При этом во время буксировки фильма или клипа вместе с ним перемещаются все содержащиеся в нем клипы.
Примеры:
Перетаскивание клипа в замкнутом пространстве
on(press) { startDrag("ball", true, 0, 0, 200, 250);}on(release) { stopDrag();}
Совместимость:
Используется с 4-ой версии Flash
Stop - Остановить воспроизведение фильма на текущем кадре
Stop
(Глобальная функция)
Производит остановку фильма на текущем кадре
Синтаксис:
Stop()
Описание:
Функция Stop() останавливает воспроизведение фильма или клипа. Это глобальный аналог метода MovieClip.stop(). Она часто используется для ожидания, когда пользователь, например, сделает выбор в графическом меню.
Примеры:
on (release) {stop();}
Совместимость:
Используется с 3-ей версии Flash
stopAllSounds - Выключить все звуки
stopAllSounds
(Глобальная функция)
Производит выключение всех звуков в фильме
Синтаксис:
stopAllSounds()
Описание:
Функция stopAllSounds() заглушает все звуки, воспроизводящиеся в данный момент в фильме, независимо от глубины вложенности в клипы. Она применяется ко всем звукам фильма, в том числе к программно генерируемым объектам Sound. Более точно управлять остановкой, запуском и громкостью звука можно с помощью класса Sound.Стоит отметить, что функция stopAllSounds() оказывает только временное воздействие. Любой звук, который начинается после вызова stopAllSounds(), будет воспроизводиться нормально.
Пример:
Следующий код может быть введен в кнопку, которая при нажатии выключит все звуки в клипе:
on(release) {stopAllSounds();}
Совместимость:
Используется с 3-ей версии Flash
stopDrag - Останавливает текущую операцию перетаскивания
stopDrag
(Глобальная функция)
Останавливает текущую операцию перетаскивания
Синтаксис:
stopDrag();
Описание:
Функция startDrag() вызывает перемещение клипа за курсором мыши по рабочему столу. Операция stopDrag() прекращает перемещение клипа вслед за курсором мыши. Поскольку в каждый конкретный момент можно буксировать только один клип или фильм, для stopDrag() не требуется аргумента target - эта функция просто прекращает любую текущую операцию буксировки.
Вместе с startDrag() функция stopDrag() используется для создания во Flash простых интерфейсов "drag-and-drop".
Примеры:
Следующие команды останавливают перетаскивание мувиклипа mc, когда пользователь отпустит кнопку мыши:
on(press) {startDrag("mc");}on(release) {stopdrag();}
Совместимость:
Используется с 4-ой версии Flash
tellTarget - Обратиться к удаленному клипу
tellTarget
(Глобальная функция)
Позволяет выполнить предложения, находящиеся в области видимости удаленного клипа фильма
Синтаксис:
tellTarget(target){ statements}
Аргументы:
Описание:
Во Flash 3 и Flash 4 tellTarget() была главным средством связи между двумя клипами фильмов (т.е. управления одним клипом из другого). Она использовалась для вызова таких функций, как play(), stop(), и gotoAndStop() с удаленными клипами фильмов. Во Flash 4, где в ActionScript были добавлены переменные, с помощью tellTarget() можно было также получать и задавать значения переменных удаленных клипов. Во Flash 5 такие действия лучше осуществлять с помощью оператора точки, ., и оператора обращения к массиву, []. Другой альтернативой функции tellTarget() является предложение with.
Некоторые особенности:
Функцию tellTarget() лучше было бы описать как предложение, поскольку для нее требуется блок предложений. Вопрос этот, однако, чисто академический, поскольку tellTarget() устарела.
Обычно она применяется, если нужно динамически назначить уровень удаляемого фильма.
Пример:
tellTarget("ball") {gotoAndStop("redStripes");_x +=300;}
Совместимость:
Используется с 3-ей версии Flash. Устарела в 5-ой версии
toggleHighQuality - Изменение качества
toggleHighQuality
(Глобальная функция)
Изменяет качество вывода.
Синтаксис:
toggleHighQuality()
Описание:
Функция toggleHighQuality() осуществляет переключение между низким и высоким качеством вывода. Если установить высокое качество вывода, то Flash Player выводит линии со сглаженными краями. При установке низкого качества линии выводятся с не сглаженными (зубчатыми) краями.
Функция toggleHighQuality() не принимает аргументов, она просто переключает две возможные установки - "High" и "Low". Это может вызвать проблемы, т.к. качество не устанавливается явно в известное состояние, и при этом не допускается иных установок качества, кроме двух заданных.
Примечание:
Во Flash 5 эта функция устарела благодаря появлению глобального свойства _quality, которое поддерживает качество вывода Low, Medium, High и Best.
Пример:
Изменение качества изображения при нажатии на кнопку.
on(release) {toggleHighQuality();}
Совместимость:
Используется со 2-ой версии Flash
unloadMovie - Удалить фильм или клип из проигрывателя
unloadMovie
(Глобальная функция)
Позволяет удалить фильм или клип фильма из проигрывателя
Синтаксис:
unloadMovie(target)
Аргументы:
Описание:
Функция unloadMovie() чаще всего используется для удаления фильмов с уровней документов в проигрывателе.
Например, если фильм загружен на уровень 1 проигрывателя, удалить его из проигрывателя можно так:
unloadMovie("_level1");
Функция unloadMovie() может использоваться с экземплярами клипов, и тогда она удаляет содержимое экземпляра, а не сам экземпляр. Экземпляр остается на рабочем столе в виде пустой оболочки, в которую можно загружать последующие фильмы. Поэтому один клип может выступать как контейнер динамического содержания, управляемого последовательными вызовами loadMovie() и unloadMovie().
Совместимость:
Используется с 4-ой версии Flash
unloadMovieNum - Удалить фильм из проигрывателя
unloadMovieNum
(Глобальная функция)
Позволяет удалить фильм из проигрывателя
Синтаксис:
unloadMovieNum(level)
Аргументы:
Описание:
Функция unloadMovieNum() почти идентична функции unloadMovie(), за исключением того, что требует задания конечного уровня level как числа, а не как строки.
Это означает, что 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