Команды Flash


Flash("ИмяОбъекта","Команда/Путь")
Пояснение
Задайте команду, которую вы хотите передать Flash-плееру.

Допустимые команды:
PLAY - воспроизведение Flash-ролика.
STOP - остановка воспроизведения Flash-ролика.
LOOP - включить повторное воспроизведение.
SHOWMENU - включить контекстное меню Flash.
HIDEMENU - отключить контекстное меню Flash.
MINMENU - режим сокращенного контекстного меню.
FULLMENU - режим полного контекстного меню.
BACK - переход к предыдущему кадру ролика.
FORWARD - переход к следующему кадру ролика.
REWIND - переход к первому кадру ролика.

Что-либо другое во втором параметре команды (включая строковые переменные) будет восприниматься как путь к файлу или URL Flash-ролика.
Пример
Этот небольшой пример открывает диалоговое окно выбора файла (с заданным фильтром) и после выбора загружает и начинает воспроизведение выбранного Flash-ролика:

OpenFile("Файлы Flash (*.swf)|*.swf|Все файлы (*.*)|*.*|","*.swf")
If (OpenFile$<>'') Then
  Flash("Flash","OpenFile$")
  Flash("Flash","PLAY")
End


Для того чтобы просмотреть другие примеры, откройте файл flash_examples.mbd или flash_menu_on_master_page.mbd.
Дополнительная информация
Использование команд MINMENU и FULLMENU бесполезно в сочетании с командой HIDEMENU.



FlashGetVar("ИмяОбъекта","ПеременнаяFlash/MMB")
Пояснение
Получает значение переменной с указанным именем из Flash-ролика и сохраняет его в переменной MMB.

Примечание: Перед тем как обращаться к переменной во Flash-ролике, она должна быть создана. Поскольку действия во Flash вызываются асинхронно, то результат этих действий может быть возвращен через неопределенное время. Поэтому, если вы не уверены, что переменная во Flash-ролике уже создана (или ей присвоено требуемое значение), то используйте в скриптах команду Pause() перед вызовом команды FlashGetVar или FlashSetVar. Это должно предоставить Flash-ролику достаточное количество времени, чтобы завершить все действия и присвоить переменной значение, которое вы хотите получить из ролика. Другой метод - вызов команд MMB непосредственно из Flash. Конечно же, он требует прямого доступа к исходному файлу ролика (*.fla) и его повторной компиляции.
Пример
Этот небольшой пример взят из файла flash_examples.mbd, который можно найти в каталоге Samples\Flash_Examples (со всеми исходными файлами Flash). Он продемонстрирует вам реальный пример использования передачи значения переменной из/во Flash:

FlashStr$='MmbText.mmbstr,'+'GetDateTime'
** Передает значение GetDateTime в переменную MmbText.mmbstr, находящуюся в ролике
FlashSetVar("Flash","FlashStr$")
** Дадим Flash немного времени для выполнения необходимых действий
Pause("100")
** Значения переменных Date$ и Time$ будут получены из ролика напрямую с помощью команд Action Script
** fscommand("mmb","Date$ =" + MMBCurDateFull);
** fscommand("mmb","Time$ =" + MMBCurTimeFull);

LoadText("DateStr","Date$")
LoadText("TimeStr","Time$")
** А значение переменной Day$ будет получено с помощью команды FlashGetVar
FlashGetVar("Flash","MmbText.MMBCurDay,Day$")
LoadText("DayStr","Day$")



FlashSetVar("ИмяОбъекта","ПеременнаяFlash")
Пояснение
Задает новое значение переменной, находящейся во Flash-ролике.

Примечание: Все что сказано о команде FlashGetVar, справедливо и для этой команды ;)



FlashSetFrame("ИмяОбъекта","Кадр")
Пояснение
Эта команда позволяет вам осуществлять переход к любому кадру Flash-ролика прямо из вашего приложения. Просто укажите имя объекта в качестве первого параметра и номер кадра, к которому вы хотите перейти, в качестве второго параметра команды.
Пример
** Переход к 50 кадру ролика
FlashSetFrame("Flash","50")
Flash("Flash","PLAY")


Для того чтобы ознакомиться с более "реальными" примерами, откройте файл flash_examples.mbd или flashserie.mbd.



FlashGetFrame("ИмяОбъекта","Переменная")
Пояснение
Почти то же самое, что и команда FlashSetFrame, но наоборот - она возвращает номер текущего кадра ролика.
Пример
** Возвращает номер текущего кадра
FlashGetFrame("Flash","CurrentFrame")


Для того чтобы ознакомиться с более "реальными" примерами, откройте файл flash_examples.mbd или flashserie.mbd.



FlashGetProp("ИмяОбъекта","Свойство,Переменная")
Пояснение
Возвращает определенное свойство ролика и сохраняет его в строковую переменную.

Свойство может быть одним из следующих:
SCALE - возвращает масштаб отображения ролика.
BGCOLOR - возвращает шестнадцатеричное значение цвета фона (например, FF0000 = красный цвет).
QUALITY - возвращает значение качества отображения.
PLAYING - возвращает состояние ролика - воспроизводится или нет (строка, содержащая true или false).
MOVIE - возвращает имя ролика.
TOTALFRAMES - возвращает общее количество кадров.
ORIGINALWIDTH - возвращает исходное значение ширины ролика.
ORIGINALHEIGHT - возвращает исходное значение высоты ролика.
PLAYERVERSION - возвращает номер версии установленного Flash-плеера.
FILEVERSION - возвращает номер версии, необходимой для воспроизведения заданного файла.
Примеры
** Чтобы получить значение цвета фона ролика, используйте этот код
FlashGetProp("Flash","BGCOLOR,bgcolor$")

** Чтобы выяснить, воспроизводится ли в данный момент ролик или нет, используйте этот код
FlashGetProp("Flash","PLAYING,play$")

** Возвращает исходную ширину ролика
FlashGetProp("Flash","ORIGINALWIDTH,owidth$")


Для того чтобы ознакомиться с более "реальными" примерами, откройте файл flash_examples.mbd или flashserie.mbd.



Вызов команд MMB непосредственно из Macromedia Flash Action Script:

Для взаимодействия между Flash-роликом и MMB используется команда fscommand. Она имеет два параметра: команда и аргументы. Если вы хотите передать команду MMB, то первым параметром всегда будет "mmb", а второй параметр будет содержать элементы скриптов MMB.

Пример использования fscommand в Flash-ролике:
    // этот пример помещает в переменную Time$ значение из Flash
    fscommand("mmb","Time$="+MMBCurTimeFull);

    // этот пример вызывает команду LoadText и помещает значение переменной DirString в текстовый объект
    fscommand("mmb","LoadText(\"DirStr\",\""+DirString+"\")");

    // пример перехода на следующую страницу
    fscommand("mmb","NextPage()");

    // пример перехода к определенной странице MMB - в этом случае "Page 2"
    fscommand("mmb","Page(\"Page 2\")");

    // пример запуска внешнего mbd-файла (с переходом на страницу "Page 1") из каталога, в котором расположен исполняемый файл приложения
    fscommand("mmb","RunMBD(\"<SrcDir>\\test1.mbd\",\"Page 1\")");

Чтобы использовать в строке кавычки, поместите перед ними обратный слэш (\). Это называется "символ замещения". Некоторые символы в Action Script нельзя использовать без замещения. Ниже приведена таблица всех используемых в Action Script последовательностей замещения:

Последовательность замещения Символ
\b Обратный ход каретки (ASCII 8)
\f Начало формы (ASCII 12)
\n Начало строки (ASCII 10)
\r Возврат каретки (ASCII 13)
\t Горизонтальная табуляция (ASCII 9)
\" Кавычки
\' Апостроф
\\ Обратный слэш
\000-\377 Число от 0 до 255 в восьмеричной кодировке
\x00-\xFF Число от 0 до 255 в шестнадцатеричной кодировке
\u0000-\uFFFF 16-битный символ Unicode, заданный шестнадцатеричным кодом

Для дополнительной информации об использовании fscommand, а также о программировании с помощью Action Script обратитесь к документации по Macromedia Flash.


MMB Программирование без границ :: dgilmour, перевод на русский язык, 2006 :: Все права защищены :: www.mmbscript.ru