![]() |
|
||||||||||
|
|||||
|
Регистрация: Jan 2009
Сообщений: 19
|
Здравствуйте, может подскажете, в чем у меня ошибка.
Проблема собственно вот в чем: 1. Вставляем флешку на страницу с помощью SWFobject 2. Передаем ей переменную "ping" 3. флешка её принимает и передает обратно fscommand('ping','') это я рабочий пример упростил, чтобы понятней было. В опере и фаерлисе всё работает как положено, а в IE нет. В чем причина, не пойму. Поиск ничего дельного не дал. Вот код флешки: var command:String = null; _root.onEnterFrame = function() { if(_root.command=='ping'){ fscommand('ping',''); _root.textfield.text='pong'; } _root.command = null; } <html><head><title>ping</title>
<script type="text/javascript" src="../swfobject.js"></script>
</head><body>
<script language="JavaScript">
// ждем комманду от флешки
function ping_DoFSCommand(command, args){
alert(command);
}
if (navigator.appName && navigator.appName.indexOf("Microsoft") != -1 && navigator.userAgent.indexOf("Windows") != -1 && navigator.userAgent.indexOf("Windows 3.1") == -1) {
document.write('<script language=\"VBScript\"\>\n');
document.write('On Error Resume Next\n');
document.write('Sub ping_FSCommand(ByVal command, ByVal args)\n');
document.write(' Call ping_DoFSCommand(command, args)\n');
document.write('End Sub\n');
document.write('</script\>\n');
}
function getMovie() {
var M$ = navigator.appName.indexOf("Microsoft")!=-1
return (M$ ? window : document)["ping"]
}
// отправка комманд флешке
function send_command(command){
getMovie().SetVariable('command',command);
}
// вставляем флешку SWFobject'ом
var flashvars = false;
var params = {
menu: 'false',
flashvars: '',
allowScriptAccess: 'sameDomain',
quality:'high',
bgcolor:'#000000',
allowFullScreen:'true',
align:'middle',
nocache:'true'
};
var attributes = {
id: 'ping',
name: 'ping',
align: 'middle',
nocache:'true'
};
swfobject.embedSWF('ping.swf', 'container', 50, 50, '8.0.0','../expressInstall.swf', flashvars, params, attributes);
</script>
<div id='container'>PING</div>
<input type='button' value='PING' onclick='send_command("ping");' />
</body></html>
Добавлено через 13 минут Вобщем вся загвоздка в том, что в IE, флешка не может передать комманду fscommand() |
|
|||||
|
Регистрация: Jan 2009
Сообщений: 19
|
дело в том, что там несколько swf файлов, тысячи строчек кода, всё переделывать никак не охота.
Сейчас обнаружил, что если просто взять код, кот. генерирует SWFobject и вставить его на страницу, то всё нормально пашет. Значит загвоздка в динамической вставке кода флешки (<object ...>) на страницу. IE не обрабатывает от неё комманды. Передать данные JS->Flash получается, а обратно нет. |
|
|||||
|
тоже встречался с подобной невменеямостью IE, не все что ему дает SWFobject он берет, при этом если вставлять флешку непосредственно как object/embed, то все нормально..
универсального решения не знаю |
|
|||||
|
Регистрация: Jan 2009
Сообщений: 19
|
Нда, придется видимо делать, как говорил dimarik. Сейчас попробовал, у ExternalInterface с SWFobject'ом проблем нет.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 17:34. |
|
|
« Предыдущая тема | Следующая тема » |
|
|