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

Видеоданные

Видеокалейдоскоп

  1. Откройте файл kaleidoscope.fla. Вы узнаете индикатор загрузки в кадре 1, а также вездесущие действия stop в кадрах 1 и 2.
  2. В кадре 2 есть фильм с именем инстанса kal. В нем содержится весь эффект калейдоскопа. Я, по большому счету, хотел создать пример того, как видеофильмы могут быть замаскированы, повторно использованы и контролируемы внешними источниками, поэтому я постарался обобщить все эти идеи в одном небольшом фильме.
  3. Дважды щелкнув на фильме kaleidoscope, вы увидите, что он состоит из четырех сегментов. На самом деле они представляют собой четыре простых инстанса с индивидуальными именами (с segment1 по segment4 ) одного и того же фильма segment, причем каждый из них вращается и располагается таким образом, что из них формируется круг. Я перетащил исходный сегмент без вращения, чтобы вам было проще разобраться в том, что здесь происходит.

  4. Открыв фильм segment, вы увидите, что имели дело с маской (фигура, представляющая собой четверть круга), перекрывающей другой фильм, содержащий видеоряд QuickTime.

    Это в особенности важно для демонстрации того, что видеофильм был отцентрирован в фильме holder, поэтому, если бы я попытался повернуть его с использованием средства Free Transformation, вращение бы осуществлялось вокруг центральной точки, и маска всегда перекрывала бы собой часть фильма.

    Все построено так, что при вращении holder с использованием ActionScript видеофильм всегда заполняет маску (т.е. круг не нарушается).

  5. Затем этот сценарий добавляется в кадр 2 слоя actions на главной временной шкале.
    Stop();
      this.onEnterFrame = function () {
        rotation = 20*(_root._xmouse/_root._ymouse);
        kal.segment1.holder._rotation=rotation;
        kal.segment2.holder._rotation=rotation;
        kal.segment3.holder._rotation=rotation;
        kal.segment4.holder._rotation=rotation;
      }

    Интерактивность обеспечивается установкой значения

    20*(_root._xmouse/_root._ymouse);

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

Так как видеофильм постоянно выполняется в цикле и обрабатывает позицию указателя мыши, существует множество способов его наблюдения и создания всех типов случайных узоров. Вы можете разобрать эту тему дальше, используя всевозможные виды математических функций и свойства инерционности, рассмотренные во "Форматирование текста" . Можно также поэкспериментировать со случайными числами.

Игорь Хан
Игорь Хан

у меня аналогичная ситуация. Однако, если взять пример из приложения (ball_motion_04_click for trial.fla) то след остается. при этом заметил, что в моем проекте в поле "One item in library" виден кружок, в то время как в приложенном примере такого кружка нет.

Вопрос знатокам, что не так?

Александр Коргапольцев
Александр Коргапольцев

объект созданый мной упорно не желает оставлять след(единственное что добился, так это то что шарик резво гоняется за курсором) функция duplicateMovieClip остаётся не активной, т.е. следа от объекта не остаётся, но если я тоже самый код вбиваю в учебный файл всё работает, не могу понять где я ошибаюсь и почему в документе созданном заново, не работает код начиная от функции duplicateMovieClip? 

Тамара Ионова
Тамара Ионова
Россия, Нижний Новгород, НГПУ, 2009
Магомед Алисултанов
Магомед Алисултанов
Россия, Волгоград, лицей 2