![]() |
|
||||||||||
|
|||||
|
Регистрация: Nov 2009
Сообщений: 1
|
Люди помогите.Сделала два флэш баннера, нужно запустить на сайте их одновременно. То есть они должны одновременно стартовать, не зависимо от загрузки, быть взаимосвязаными. По кадрам все сделала как нужно, все совпадает. Но наш админ сказал,что они могут не загрузиться одновременно. И все пропадет. Я даже не знаю как называется этот код или как там его. Может кто поможет. Спасибо
|
|
|||||
|
Модрон-ветеринар
|
Нужно написать JavaScript функцию, которая бы при ее вызове из одной флешки передавала в другую флешку некий разрешающий параметр для синхронизации.
В каждой флешке отслеживать полную загрузку всех кадров. Как только полная загрузка произошла, нужно начинать периодически вызывать эту JS-функцию с помощью ExternalInterface (специальный класс ActionScript для общения с внешней средой ). Воспроизведение должно быть временно приостановлено. Стартовать можно будет при соблюдении двух условий - при условии полной загрузки себя самой и как только будет получен разрешающий параметр извне, от другой. Тогда обе стартуют с гарантией одновременно и только тогда, когда в браузер загрузятся обе и полностью. После старта вызов JS функции следует прекратить. Как вариант, разрешающий параметр можно передать один раз, "дернув" JS-функцию, но отслеживать его получение периодически уже внутри каждой флешки. Без программиста трудно будет обойтись. Последний раз редактировалось mooncar; 10.11.2009 в 16:11. |
|
|||||
|
Регистрация: Jan 2008
Сообщений: 669
|
Можно еще с помощью LocalConnection
код в 1 кадре 1 флэшки stop(); var lc:LocalConnection = new LocalConnection(); lc.onStatus = function(e:Object) { if (e.level == 'status') { play(); onEnterFrame = null; } } onEnterFrame = function() { lc.send("lc", "startPlay"); } stop(); var lc:LocalConnection = new LocalConnection(); lc.startPlay = function() { play(); } lc.connect("lc"); Цитата:
|
|
|||||
|
Модрон-ветеринар
|
Соединиться - да.
Но еще нужно отследить полную загрузку флешек. |
|
|||||
|
Регистрация: Jan 2008
Сообщений: 669
|
Думаю достаточно положить весь ролик в мувиклип, этот мувиклип - в первый кадр и проигрывать его (мувиклип)
|
|
|||||
|
Модрон-ветеринар
|
Наверное, с LocalConnection будет проще.
А вот с EI, и без записи JS на странице: http://www.us-pro.ru/mooncar/test/baner1.html В первом кадре ролика 1: stop(); System.security.allowDomain('www.domen.ru'); import flash.external.*; var otherBaner:String = 'baner2'; var allowPlay:Boolean = false ; var nProgress:Number = setInterval(checkLoad, 10, this); ExternalInterface.addCallback('allowThis', null, allowPlayThis); var javaScriptFunction:String = 'function allow () { if (navigator.appName.indexOf("Microsoft") != -1) { window["' + otherBaner + '"].allowThis(); } else { document["' + otherBaner + '"].allowThis(); }}'; function checkLoad (target):Void{ var nLBytes:Number = target.getBytesLoaded(); var nTBytes:Number = target.getBytesTotal(); if (nLBytes >= nTBytes && nTBytes > 0) { ExternalInterface.call(javaScriptFunction); //после загрузки даем знать о готовности в другую флешку if (allowPlay) { //после получения разрешения от другой флешки стартуем эту и убираем ф-ю проверки gotoAndPlay(2); clearInterval(nProgress); } } } function allowPlayThis() { allowPlay = true ; } И в параметрах публикации нужно id в object и name в embed прописать в двух местах, как в примере по ссылке. Последний раз редактировалось mooncar; 11.11.2009 в 01:42. |
|
|||||
|
Регистрация: Mar 2009
Сообщений: 13
|
mooncar Большое спасибо за пример,
но я еще больше залез в дебри незнания. Мне ненужно чтоб флешки опрашивали друг друга на готовность. мне просто нужно чтоб при наведении на кнопку1 в другой флешке вывелся текст кнопка 1. При наведении на 2-ю - текст кнопка 2. |
![]() |
![]() |
Часовой пояс GMT +4, время: 10:14. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|