![]() |
|
||||||||||
|
|||||
|
Регистрация: Oct 2009
Сообщений: 6
|
Здравствуйте.
У меня есть вопрос, который я не могу решить уже почти неделю. Сломал всю голову, наверное потому что я не являюсь программистом в Actionscript и javascript. Но сделать надо. Суть в том, чтобы можно было управлять роликом по средствам отправки переменных из PHP в Javascript, а оттуда во встроенный Flash ролик на странице. Нашел в сети похожий пример с исходниками, посмотрел как все устроено, в примере из текстового поля на странице отправляется текст в текстовое поле ролика, и обратно при нажатии на кнопку. переделал код, на сколько хватило ничтожных знаний javascript, как понял что на стороне Actionscript ничего трогать не надо. В Flash удалил поле и кнопку и сделал анимацию с кружочком который меняет цвет каждые 5 кадров. По моей задумке в момент нажатия на кнопку на странице ролик должен остановится. Но ничего не происходит. Помогите пожалуйста, скажите почему не работает ? Коды прилагаются. Страница :
import flash.external.ExternalInterface; //устанавливаеv глобальную функцию recieveFromJS как обработчик JS-вызова sendFromJS. ExternalInterface.addCallback("sendFromJS", null, recieveFromJS); function recieveFromJS(msg) { //Получаем данные и выводим на экран _root.txt.text = msg; } _root.button.onRelease = function() { //Вызываем функцию на JS и передаем содержимое поля ExternalInterface.call("recieveFromFlash", _root.txt.text); //Очищаем текстовое поле _root.txt.text = ""; } |
|
|||||
|
Модрон-ветеринар
|
1. Почему у вас в <object> имя флешкиного объекта
а в <embed> ? Сделайте тогда тоже movie, иначе в разных браузерах флешкин объект в DOM-струкутре по разному поименуется, и JS-код для управления не везде сработает. 2. Как работает ExternalInterface.addCallback ? Рассмотрим вашу запись: Здесь вы регистрируете на HTML-странице для флешкиного объекта JS-метод по имени sendFromJS, при вызове которого из JS: внутри флешки вызовется ее функция recieveFromJS. Создайте такую функцию во флеше и пусть она будет делать то, что надо, например, останавливать плеер: То есть вот это не имеет никакого смысла в данном контексте. И имя функции sendFromJS() желательно изменить, чтобы оно не совпадало с именем метода флешки sendFromJS(). Во избежании путаницы. Лучше как-то так: и тогда --------------- 3. Есть еще одно соображение. Меня все же смущает ваша запись Просто в AS1/2 есть встроенный метод stop(), который останавливает текущий таймлайн. Такое ощущение, что вы используете какой-то готовый плеер, в котором определен заказной метод stop(). Нехорошо это - в ряде случаев возможен конфликт, и даже я слышал о таком, если мне не изменяет память. Хотя метод объекта DOM-структуры (в роли которого выступает флешка) и встроенный метод внутри той же флешки - это разные вещи, какой-то браузер вроде бы тупил из-за этого. PS. К "Серверным технологиям" контекст вашего вопроса отношения не имеет, это все взаимодействия на стороне клиента, то есть в браузере. Но путь пока тема будет здесь.
__________________
Идите первым! Последний раз редактировалось mooncar; 15.08.2012 в 14:19. |
![]() |
![]() |
Часовой пояс GMT +4, время: 21:53. |
|
|
« Предыдущая тема | Следующая тема » |
|
|