Не изменяется флеш объект.
Вот есть сам объект:
<html> <head> <script type="text/javascript"> function randomInteger(min, max) { var rand = min + Math.random() * (max - min) rand = Math.round(rand) return rand } function f() // Обработчик кнопки { var p = document.querySelector('param') // var param = p.value.split('*')[2].split(':') // Разбить на элементы var r // Случайное число от 1 до 27, кроме 25 while((r = randomInteger(1, 27)) == 25) {} param[13] = r // Записать параметр var val = "param=tgbut1*cmbut2*" + param[0] for(var i = 1, l = param.length; i < l; i++) val += ':' + param[i] p.value = val // Установить параметры alert(val) } function main() { document.querySelector('button').addEventListener('click', f) } document.addEventListener('DOMContentLoaded', main) // Вызвать функцию после постройки DOM </script> </head> <body> <center> <object type="application/x-shockwave-flash" data="http://dcdn.heroeswm.ru/swffiles/map.swf?ver=464276113" width="400" height="400"> <param name="FlashVars" value="param=tgbut1*cmbut2*1:1:0:0:0:0:0:0:0:0:0::0:3" /> </object> <br><br><br> <button>Изменить пункт назначения</button> </center> </body> </html> В этой строке: param=tgbut1*cmbut2*1:1:0:0:0:0:0:0:0:0:0::0:3 Последний параметр отвечает за то, в каком секторе будет нарисован красный крестик с мечом. Вот если вставить код допустим в Real-time HTML Editor, и изменить этот параметр(вручную, от 1 до 27), страница как бы перезагружается и крестик изменяет своё расположение на карте. А при нажатии кнопки(я сделал под под картой), ничего не происходит. Т.е. я меняю этот параметр через JS, а крестик остаётся на месте. Может можно как - то перезапустить, что - ли этот swf объект? |
Наверно флешку нун ремовить и перезаписать... собственно кады флешь запустился, он уже считал все параметры из кода, и ему пофег, что меняется... для смены в реальном времени нун сам флешь скрипт кавырять
|
На странице с картой только один скрипт: swfobject22.js
Я так понял - это стандартный апи. Содержит он вот такие функции: registerObject - регистрирует новый объект getObjectById - вернёт идентификатор объекта embedSWF - встраивает объект switchOffAutoHideShow - выключить автоскрытие показа? Видимо автовоспроизведение всё - таки... hasFlashPlayerVersion - получает текущую версию флеш плейера showExpressInstall - показывает окно установки плейера removeSWF - удаляет объект addDomLoadEvent - назначает вызов функции на событие addLoadEvent - назначает вызов функции на событие getQueryParamValue - получает параметры объекта expressInstallCallback - то - ли установка плейера, то ли функция которая вызовется после... Ничего нет про перезагрузку... Может нужно удалить и заново создать? |
Всё получилось:
<html> <head> <script type="text/javascript" src="http://dcdn.heroeswm.ru/swfobject22.js"></script> <script type="text/javascript"> function randomInteger(min, max) { var rand = min + Math.random() * (max - min) rand = Math.round(rand) return rand } function f() // Обработчик кнопки { var center = document.querySelector('center') var obj = center.children[0] // Объект var div = document.createElement('div') div.id = "content" div.innerHTML = "324234" center.insertBefore(div, obj) var data = obj.data var w = obj.width var h = obj.height var FlashVars = obj.children[0].value.split('*')[2].split(':') // Разбить на элементы var r // Случайное число от 1 до 27, кроме 25 while((r = randomInteger(1, 27)) == 25) {} FlashVars[13] = r // Записать параметр var val = "param=tgbut1*cmbut2*" + FlashVars[0] for(var i = 1, l = FlashVars.length; i < l; i++) val += ':' + FlashVars[i] FlashVars = val // Установить параметры var bgcolor = obj.children[1].value var allowScriptAccess = obj.children[2].value var wmode = obj.children[3].value obj.id = "flashmaps" swfobject.removeSWF("flashmaps") swfobject.createSWF({data: data, width: w, height: h}, {FlashVars: FlashVars, bgcolor: bgcolor, allowScriptAccess: allowScriptAccess, wmode: wmode}, "content") } function main() { document.querySelector('button').addEventListener('click', f) } document.addEventListener('DOMContentLoaded', main) // Вызвать функцию после постройки DOM </script> </head> <body> <center> <object type="application/x-shockwave-flash" data="http://dcdn.heroeswm.ru/swffiles/map.swf?ver=464276113" width="450" height="450"> <param name="FlashVars" value="param=tgbut1*cmbut2*1:1:0:0:0:0:0:0:0:0:0::0:1" /> <param name="bgcolor" value="#ddd9cd" /> <param name="allowScriptAccess" value="always" /> <param name="wmode" value="opaque" /> <div> <p> <a href="http://www.adobe.com/go/getflashplayer"> <img src="http://dcdn.heroeswm.ru/i/get_flash_player.gif" alt="Get Adobe Flash player" /> </a> </p> </div> </object> <br><br><br> <button>Изменить пункт назначения</button> </center> </body> </html> |
Можно выставить высоту окна отображения
[HTML run height=600] |
Понял, спасибо ))
По теме, оказалось всё проще, не нужно никаких манипуляций с объектом проводить. Меняем что нужно прямо в странице, находим элемент - родителя, копируем и заново вставляем его содержимое через innerHTML. Всё. |
Часовой пояс GMT +3, время: 17:07. |