главная страница   свяжитесь с нами  бесплатная почта   карта сайта  заказать   flash-заставка   добавить в избранное   сделать стартовой 
поиск по сайту
вход для зарегистрированных пользователей регистрация забыл пароль?
 
 
 
УЧЕБНИК FLASH
На главную Новости Философия Наша история Наши клиенты
 
Rambler's Top100
  • Инcтрументы рисования
  • Motion
  • Shape
  • Выпадающее меню
  • Movie Clip
  • Tell Target
  • Load Movie
  • Полноэкранный ролик
  • Aftershock
  • FS Command
  • Определение 4-ой версии плагина
  • Интерактивное обучение
  • Акции скрипта во Flash4
  • Программирование во Flash4
  • Пошаговое создание фильма во Flash4
  • FS Command

    Пример FS Command:JavaScript контроль над Flash роликом

    Чтобы понять, как это работает, выполняйте последовательно приведенные ниже шаги.


    1) Вставьте ваш movie в HTML.
    Создайте НTML для вашего ролика, используя теги OBJECT и EMBED. В тегах ОBJECT и EMBED , убедитесь что вы обозначили ваш ролик с "ID"(для тега OBJECT) и "NAME" (для тега EMBED). Очень важно чтобы вы назвали ваш ролик и чтобы это имя было идентефицированно для тегов OBJECT и EMBED поскольку JavaScript необходимо контролировать ролик по его имени. Также помните что необходимо написать в теге для Netscape(EMBED) строчку swLiveConnect="true". HTML-код вашей странички должен выглядеть приблизительно так, как указано ниже.

    <HTML>
    <HEAD>
    <TITLE>Моя первая FS команда</TITLE>
    </HEAD>

    <BODY>

    <OBJECT
    CLASSID="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
    WIDTH="100%"
    HEIGHT="100%"
    CODEBASE="http://active.macromedia.com/flash3/cabs/"
    ID=имя_ролика>
    <PARAM NAME="MOVIE" VALUE="ролик.swf">
    <PARAM NAME="PLAY" VALUE="false">
    <PARAM NAME="LOOP" VALUE="false">
    <PARAM NAME="QUALITY" VALUE="high">
    <PARAM NAME="SCALE" VALUE="SHOWALL">

    <EMBED
    NAME="имя_ролика"
    SRC="ролик.swf"
    WIDTH="100%"
    HEIGHT="100%"
    PLAY="false"
    LOOP="false"
    QUALITY="high"
    SCALE="SHOWALL"
    swLiveConnect="true"
    PLUGINSPAGE="http://www.macromedia.com/shockwave/download/index.cgi? P1_Prod_Version=ShockwaveFlash">
    </EMBED>
    </OBJECT>

    </BODY>
    </HTML>


    2) Добавьте кросс-броузер функции (которые понимают популяные бродилки - NS и MSIE) обращающиеся к объектам в вашем ролике.
    Существуют два важнейших компонента для того, чтобы JavaScript мог управлять Flash роликом:
    1. функция вызывающая метод Flash.
    2. функция которая возвращает соответствующий синтакс для вызыва объектов во Flash ролике в зависимости от типа броузера.
    В первой части скрипта вам нужно просто указать правильный синтакс ("document[moviename]" для Netscape и "window[moviename]" для MSIE). просто поместите это в каждый ваш скрипт, вызывающий Flash метод и можете не беспокоиться по поводу совместимости. Вот этот код.

    <SCRIPT LANGUAGE="JavaScript">
    <!--
    var moviename = "имя_ролика";

    function movieobject(moviename)
    {
    //IE and Netscape refer to the movie object differently.
    //This function returns the appropriate syntax depending on the browser.

    if (navigator.appName.indexOf ("Microsoft") !=-1)
    {
    return window[moviename]
    }

    else
    {
    return document[moviename]
    }
    }

    Значение "имя_ролика" должно равняться тому имени ролика который вы указали в тегах EMBED и OBJECT.

    3) Добавим функцию вызывающую ваш Flash метод.
    После того как вы разобрались с проблемой совместимости, будет гораздо легче вызвать метод Flash. Вы обращаетесь к объектам внутри вашего ролика вызывая "скрипт совместимости" через имя вашего ролика (moviename) примерно так:

    function playmovie()
    {
    movieobject(moviename).Play();
    }

    Но подождите. Мы не закончили. Что случится если вы вызовете method в ролике который еще не загрузился? Или даже еще не начал загружаться? Получится ошибка. Итак вы должны проверить:
    1. что присутствует объект,который в ролике.
    2. что все загружено и готово к тому чтобы начать ваш method.
    Самое простое решение проверить наличие этих двух вещей - использовать FS Command в вашем Flash ролике, который начнет исполнять JavaScript что, в свою очередь вызовет используемый вами метод. Таким образом у вас появляется "нижнеуровневый" контроль над временем подключения вашего метода. Тем не менее вы можете проверить эти два условия с JavaScript через оценивание объектов ролика и затем вызвать метод "PercentLoaded()".
    Итак вот как должна выглядеть эта функция:


    var movie_ready = "false";

    function playmovie()
    {
    if(movie_ready == "false")
    {
    while(movie_ready == "false")
    {
    if(movieobject(moviename).PercentLoaded() == 100)
    {
    movieobject(moviename).Play();
    movie_ready = "true";
    }
    }
    }

    else
    {
    movieobject(moviename).Play();
    }
    }

    которая ждет полной загрузки ролика прежде чем исполнять метод Play. Помните иницализировав "movie_ready" переменную изнутри вашего Flash метода и вызывая такую функцию как true/false сохраняется статус вашего ролика так долго, пока страница в памяти.

    4) Добавьте событие вызывающее вашу функцию Flash метода.
    Теперь чтобы ваша функция контроля Flash была готова вам нужно всего лишь вызвать ее.
    Для тестовых целей мы используем кнопку формы чтобы вызвать нашу функцию Flash :

    <FORM>
    <INPUT TYPE="BUTTON" VALUE="Play" ONCLICK="playmovie()">
    </FORM>

    или текстовую ссылку (по аналогии можно вставить .GIF, .JPEG):

    <a href="#" onClick="playmovie()">Play</a>


    Мы научили вас как вызывать один JavaScript метод--"Play()"--во Flash ролике. Вы можете использовать такую же технику чтобы вызывать любой метод JavaScript.

    Методы доступные во Flash 3.0 плеере перечисленны на Macromedia.

     
    На главную Новости Философия Наша история Наши клиенты
    English online Web маркетинг Forex Отзывы о нас Персоналии
    Рейтинг@Mail.ru
    Яндекс цитирования
    e-bay.ru - поиск и продажа  любых товаров
    learning tests finance law forex computer work about us shop partners other
    deutsch