Опубликован: 07.11.2006 | Уровень: специалист | Доступ: свободно
Лекция 16:

Интеграция динамических данных

< Лекция 15 || Лекция 16: 12345 || Лекция 17 >

Обновляемая панель перехода

Первое из двух приложений создает средства навигации. Для обеспечения гибкости я остановился на вертикальной полосе перехода в левой части экрана, что даст достаточно места для большого количества опций, если это понадобится. Для второго приложения каждый элемент навигации будет являться инстансом фильма.

Фильм начинается с одного инстанса фильма в левой верхней части экрана (см. файл dynamictext5.fla ). Инстанс фильма имеет имя mc_navItem1. Фильм будет осуществлять доступ к текстовому файлу, в котором есть ряд переменных, каждая из которых содержит название ссылки (menu.txt).

titlel=Home&title2=Products&title3=Services&
  title4=Contact+Us&title5=About+Us

Фильм будет автоматически выводить список этих названий вертикально, независимо от числа переменных в текстовом файле. Итак, приступим.

  1. Откройте новый проект Flash и создайте в нем два слоя с именами Actions и Menu. Затем создайте текстовое поле в правом верхнем углу.
  2. Установите Var: на varTitle, инстанс на имя navtitle и поле на Multiline no wrap.

  3. Теперь преобразуйте поле в фильм с именем mcNavItem.
  4. Назовите инстанс, имеющийся на рабочем месте, именем mc_navItem1 и введите в него текст Loading:

  5. Все, что осталось сделать во Flash, это добавить ActionScript в слой Actions. Просто вводите код в ваш файл по мере его рассмотрения. Начните с присвоения messageURL имени вашего текстового файла.
    messageURL = "menu.txt"
  6. Далее мы создадим функцию с именем setUpMenus, которая использует аналогичный первому приложению метод для проверки того, установлена переменная или нет. На этот раз мы используем цикл while для прохода через все переменные title1:title5.
    setUpMenus = function() { 
      counter=1
    
    while (typeof(myNavVars["title"+counter]) == "string") {
  7. Если counter = 1, мы используем уже имеющийся фильм. Нам не нужно создавать еще один или беспокоиться о том, где его разместить. Поэтому введите следующий код.
    if (counter>1) {
  8. При каждой последующей итерации нужно сначала создать новый инстанс фильма с элементами перехода с помощью метода duplicateMovieClip для первого элемента навигации. Функция duplicateMovieClip возвращает ссылку на вновь созданный фильм. Мы будем хранить ее в переменной, чтобы можно было легко осуществлять доступ к параметрам нашего нового фильма.
    var theClip = _root.navlteml.duplicateMovieClip 
      ("navltem"+counter,counter)

    Фильм, дубликат которого мы создаем, является первым элементом навигации _root.navItem1. Мы используем переменную-счетчик для создания нового инстанса для дубликата фильма: "navItem"+counter. Мы также используем значение counter для установки глубины фильма.

  9. Теперь нужно куда-то поместить наш новый элемент навигации. В данном случае мы расположим его прямо под последним созданным нами navitem. Мы сделаем это, установив y-координаты нового navitem (определяются theClip ) на y-координаты предыдущего navitem (определяется this["navitem" + (counter-1)]) плюс 30.
    theClip._y = this ["navitem"+ (counter-1)]._y + 30
    }
  10. Мы сохраняем ссылку на текущий navitem в переменной theClip только в том случае, если был создан дубликат фильма из первого navitem, и не делаем этого, если фильмом является первый navitem. Теперь нужно установить theClip на работу с первым инстансом.
    else  {
      theClip = _root.navItem1
    }
  11. Далее нужно установить текст для каждого из элементов навигации.
    theClip.varTitle = myNavVars ["title"+counter]
  12. После этого переходим к следующему элементу.
    counter++
      }
    }
  13. Осталось инициализировать наш объект вне функции.
    myNavVars = new loadVars ()
  14. Присвойте функцию управляющему элементу onLoad, чтобы загружались все переменные одновременно.
    myNavVars.onLoad = function()  {
      _root.setUpMenus()
    }
  15. Также, разумеется, нужно загрузить переменные.
    myNavVars.load(messageURL)
  16. Выполнение этого фильма сгенерирует вертикальную область перехода, в которой каждый элемент навигации будет размещен на 30 пикселей ниже, чем предыдущий элемент. Вы можете просмотреть полный код в файле dynamictext5.fla.
< Лекция 15 || Лекция 16: 12345 || Лекция 17 >
Игорь Хан
Игорь Хан
След не остается
Александр Коргапольцев
Александр Коргапольцев
Вопрос по содержанию лекции №2, курс Flash MX Studio
Евгения Новоселецкая
Евгения Новоселецкая
Россия
Станислав Бакулин
Станислав Бакулин
Эстония, Нарва