Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 06.02.2009, 15:29
rxcoder вне форума Посмотреть профиль Отправить личное сообщение для rxcoder Найти все сообщения от rxcoder
  № 1  
Ответить с цитированием
rxcoder

Регистрация: Jan 2009
Сообщений: 19
По умолчанию SWFobject + fscommand + IE

Здравствуйте, может подскажете, в чем у меня ошибка.
Проблема собственно вот в чем:
1. Вставляем флешку на страницу с помощью SWFobject
2. Передаем ей переменную "ping"
3. флешка её принимает и передает обратно fscommand('ping','')

это я рабочий пример упростил, чтобы понятней было. В опере и фаерлисе всё работает как положено, а в IE нет. В чем причина, не пойму. Поиск ничего дельного не дал.
Вот код флешки:
Код AS1/AS2:
var command:String = null;
_root.onEnterFrame = function() {
	if(_root.command=='ping'){
		fscommand('ping','');
		_root.textfield.text='pong';
	}
	_root.command = null;
}
вот HTML/JS

Код:
<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()

Старый 06.02.2009, 15:54
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 2  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Не надо никаких fscommand. ExternalInterface Вам в руки.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 06.02.2009, 16:36
rxcoder вне форума Посмотреть профиль Отправить личное сообщение для rxcoder Найти все сообщения от rxcoder
  № 3  
Ответить с цитированием
rxcoder

Регистрация: Jan 2009
Сообщений: 19
дело в том, что там несколько swf файлов, тысячи строчек кода, всё переделывать никак не охота.

Сейчас обнаружил, что если просто взять код, кот. генерирует SWFobject и вставить его на страницу, то всё нормально пашет. Значит загвоздка в динамической вставке кода флешки (<object ...>) на страницу. IE не обрабатывает от неё комманды. Передать данные JS->Flash получается, а обратно нет.

Старый 06.02.2009, 16:52
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 4  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
тоже встречался с подобной невменеямостью IE, не все что ему дает SWFobject он берет, при этом если вставлять флешку непосредственно как object/embed, то все нормально..
универсального решения не знаю

Старый 06.02.2009, 17:08
rxcoder вне форума Посмотреть профиль Отправить личное сообщение для rxcoder Найти все сообщения от rxcoder
  № 5  
Ответить с цитированием
rxcoder

Регистрация: Jan 2009
Сообщений: 19
Нда, придется видимо делать, как говорил dimarik. Сейчас попробовал, у ExternalInterface с SWFobject'ом проблем нет.

Создать новую тему Ответ Часовой пояс GMT +4, время: 17:34.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 17:34.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.