Flash_бункер
|
Карта
|
Новости
|
Начинающим
|
Уроки
|
???
|
Гостевая
|
Что еще?
Карта сайта
Все исходники к урокам
Компоненты
Конкурс
Ссылки
 
Сервис
Сделать стартовой
Написать нам
 
Статистика



Нужно посетить

Луганский ЧАТ - Часть города
MULTER.RU - киностЮдия, блин!
 
 
Управление Flash'ем со страницы (JavaScript -> Flash)

Интро
Состоялся недавно заказ, была поставлена задача, и на фразе : "все можно сделать" началось выполнение. Когда дошло дело до флешовых подменю, которые нужно было определять, казалось что две среды как сговорились на некоректную отработку.. дело стало.
В Интернете на эту тему было куча вопросов, но ответов я так и не нашел.. Пришлось связываться цепью - спрашивать у своих знакомых программеров и просить чтобы они спрашивали у своих знакомых. Каждый чем-то помог, и посмеялись, и понервничали.. Всего то ничего, а вот если так оно?
Проблема решена и я хочу чтобы все знали как с этим справиться.

Отдельно
-----------------------------------------------------------------------
Благодарность Максиму за помощь.
-----------------------------------------------------------------------

Итак к делу.
Задача стояла так.
На индексе хтмл-страницы висит flash-заголовок, индекс этот загружается один раз и все - для последующих переходов по разделам был сделан iframe для загрузки других страниц.
Так вот, на флеше при переходе на следующие кадры в нем были прописыны пути разделов. Нужно было как нибудь плееру обьяснять на какой ему кадр перейти, то есть из флеша показать юзеру где мы сейчас находимся.

Для этого существует такая функция в яве - "GotoFrame()". В скобках указывается номер кадра на какой требуеться перейти во флеше.
На каждой странице у меня в ифрейме было прописано на какой кадр слать флеш. Задумка ясна?

Для того чтобы понять все - нужно делать.

Создаем flash-файл, рисуем в одном кадре цыфру "1", во втором "2". В новом слое делаем над этими кадрами по одному кадру еще и пишим "stop();" и там и там.
Не знаю как вы, а я загонял и загоняю флеш на хтмл страницы с помощью дремвьювера. ..Делаем это.
Дальше, к флеш-ролику нам надо будет обрашаться через его "id". В html-документе в теге "<object >" пишим id="GotoFrame". Получиться где-то вот так: <object id="GotoFrame" ...> .
Хорошо с флешом разобрались, теперь нужен скрипт который будет гонять его по кадрам :)
Между тегами <head> </head> нужно написать скрипт:
<SCRIPT LANGUAGE="javascript">

function first(){
GotoFrame.GotoFrame(1); //GotoFrame - это id клипа
}
function second(){
GotoFrame.GotoFrame(2);
}
</SCRIPT>
А в тегах <body> </body> для кнопок такой:
  <br />
  <input type="button" value="GoTo 1" onClick="first()">
  <br />
  <input type="button" value="GoTo 2" onClick="second()">
  <br />


Думаю с явой особо не будет проблем.. В разделе "Ссылки" есть ссылки на замечательные ресурсы по яве.
Ну вот и все. Теперь включайте фантазию и применяйте хорошую функциональность в навигации, для эфектности в дизайне :)

Пример показан ниже.







Для тех кто искал как передать с ифрейма "посылание флеша" смотрите ниже - я не забыл :) .
GotoFrame передать с iframe

А для этого нужно совсем не много. Просто в строке скрипта нужно прописать:
  top.document.getElementById("GotoFrame").GotoFrame(76);
Где:
 // top // Самое главное окно, в котором все остальное открыто .document
// .getElementById // Выбор элемента по его идентификатору, 
//мало ли может на стр. еще какой-то есть :) ("id строкой")
// .GotoFrame(номер кадра цыфрой :);
Здесь можно взять исходник (1 Kb)

Примечание: в опере не работает.
Сайт для которого делалось: warlock-games.com


 
  + К уроку
Если в проекте есть несколько сцен (например еще для прелоадера одна), то кадры считаются с первого в первой сцене. Учитывать нужно все кадры при использовании ява-ф-ции "GotoFrame()".
 
Copyright © 2005-2006 www.fbunker.com.ua                         www.complexflash.com