White cat - Справочник по Flash
Примеры:
Создание объекта, а затем перечисление по пунктам его свойств с помощью цикла 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 (те, которые заданы относительно текущего адреса):