div.main {margin-left: 20pt; margin-right: 20pt}Использование Flash, Javascript и
FSCommand.
Flash позволяет вам создавать
шедевры, это - более богатое и более динамичное средство, нежели
простой HTML. Однпко, существуют вещи, которые вы можете сделать в
HMTL и JavaScript и не сможете сделать в одном Flash. Я это говорю к
тому, что вы можете интегрировать HTML, JavaScript и Flash, чтобы
создавать великолепные эффекты. В этой статье я объясню как вызывать
функции JavaScript из Flash-a чтобы выполнить функции, которые Flash
не может выполнить сам.
Давайте начнем с простого
Flash-файла. Создайте обычный ролик, потом, используя инструмент
TEXT, напишите, к примеру, фразу "Status Bar" где-нибудь где Вам
нравится. Затем преобразуйте этот текст в кнопку (ВЫДЕЛИТЕ ТЕХТ,
затем INSERT > CONVERT TO SYMBOL > BUTTON, ну и дайте вашей
кнопке любое имя, например "StatusBtn"). Затем кликните 2 раза на
вашей кнопке. Вы увидите, что она (как и любая кнопка, состоит из
4-х фреймов). Добавьте новый слой и в нем нарисуйте прямоугольник,
ровно закрывающий текст. Потом перетащите первый фрейм нового слоя
(в этом фрейме ваш прямоугольник) в позицию 4-го фрейма (фрейм
"Hit"). Все, теперь вернитесь в редактирование основной сцены.
Прямоугольник, который вы нарисовали, будет областью, при наведении
на которую мышью ваша кнопка будет активизироваться, т.е. это -
область срабатывания кнопки. Теперь кликните по вашей кнопке правой
кнопкой мыши и выберите меню "ACTIONS" - у вас появится окно
редактирования/добавления скриптов ActionScript. В этом окне найдите
и выберите ACTIONS > FSCOMMAND, это вставит в окно редактирования
следующий код:
on
(release) { fscommand (); }
Теперь внизу
окна туда где написано "Command" введите "ststus" (без кавычек). А
туда, где написано "Arguments" введите текст, который вы хотите
видеть в статусной строке вашего браузера, при наведении на вашу
кнопку. И, наконец, выберите первую строку кода в окне
редактирования скрипта, которая гласит "on( release )" и внизу этого
окна снимите галочку с "release" и поставьте галку на "roll over". В
конце концов ваш скрипт будет выглядеть приблизительно
так:
on (rollOver)
{ fscommand ("status",
"Бу-ха-ха!"); }
Теперь вы предельно близки к
тому, чтобы выполнять комманды JavaScript-а прямо из
Flash!
Так-с, теперь сохраните ваш ролик под каким угодно
именем, выберите FILE > PUBLISH SETTINGS. В появившемся окне
отметьте HTML. Потом там где написано слово "Template" выберите
"Flash with FSCommand" и нажмите "ОК" а затем "Publish". В
результате публикации вашего ролика были созданы файлы .html и .swf
0 скопируйте полученный .html-файл. Если вы не скопируете полученный
html-файл, при последующей публикации этот файл будет заменен новым,
так что не забудьте его скопировать. Теперь откройте скопированный
файл в любом текстовом редакторе (например в блокноте). Вы увидите,
что вверху присутствует JavaScript. Самое интересное в этом
JavaScript-e - функция, называемая "MovieName_DoFSCommand" где
MovieName - название, под которым вы сохранили ваш ролик. Кстати, не
удивляйтесь, увидев такие комментарии:
// // Place your code
here... //
это-то (как вы, наверное,
догадались) мы сейчас и будем редактировать. Прямо под этими
комментариями добавьте следующий код:
if(command == "status")
{ self.status=args; }
Сейчас объясню что к
чему. FSCommand нужна для того, чтобы Flash-ролик мог
взаимодействовать с Flash-проигрывателем (этот проигрыватель - ваш
веб-браузер). Macromedia решили осуществить это через JavaScript.
Когда вы исполняете функцию FSCommand , вызывается функция
MovieName_DoFSCommand с двумя аргументами `command` и `arguments`
(эти 2 поля вы недавно имели шанс заполнять). С помощью `command` мы
вызываем правильные JavaScript-овые функции, а с помощью `arguments`
мы указываем что эти функции должны делать. В нашем примере мы
заставляем наш текст выводиться в статусной панели
браузера.
Это был всего лишь несложный пример того, как вы
можете использовать этот прием. До остального, надеюсь, Вы сможете
дойти сами, при желании. Если есть желание, можете скачать архив с
остальными 2-мя примерами применения FSCommand - выпающим окном с
сообщением и встряской браузера.
|