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

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

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

Регистрация: Jun 2007
Сообщений: 374
Question ExternalInterface и субдомен

Итак. Есть домен site.ru и субдомен sub.site.ru

Основая страница - домен site.ru, в корне есть файл index.php, внутри которого размещается флэшка скриптом swfObject 1.5:
Код:
var so = new SWFObject("/flash/flashka.swf", "flashka", "100%", "100%", "8", "#FFFFFF");
На субдомене находится в корне файл index.php который include'ит файл index.html с домена site.ru:
Код:
require_once("../../site.ru/www/index.html");
для того, чтобы подргужалась флэшка на субдомене, настроен редирект:
Код:
RewriteRule ^(flash){1}/(.*) http://site.ru/$1/$2 [NC,L,QSA]
Внутри флэшки есть строка
Код:
ExternalInterface.call("window.open","http://site.ru/popup/w.html");

Проблема заключается в том, что на субдомене ExternalInterface не срабатывает.

Решается, если убрать редирект и положить саму флэшку физически в папку sub.site.ru/flash/flashka.swf

Есть ли другое решение проблемы, чтобы не плодить одну и ту же флэшку во многих экземплярах на домене и всех его субдоменах?

Старый 17.06.2008, 05:24
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 2  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
Использовать относительную адресацию
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 17.06.2008, 13:32
s8000_1 вне форума Посмотреть профиль Отправить личное сообщение для s8000_1 Найти все сообщения от s8000_1
  № 3  
Ответить с цитированием
s8000_1
 
Аватар для s8000_1

Регистрация: Jun 2007
Сообщений: 374
Где именно?

Старый 17.06.2008, 17:51
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 4  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
Во флеше
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 17.06.2008, 23:16
s8000_1 вне форума Посмотреть профиль Отправить личное сообщение для s8000_1 Найти все сообщения от s8000_1
  № 5  
Ответить с цитированием
s8000_1
 
Аватар для s8000_1

Регистрация: Jun 2007
Сообщений: 374
Цитата:
Сообщение от iNils Посмотреть сообщение
Во флеше
Так дело не в абсолютном пути window.open:
Код:
ExternalInterface.call("alert","test");
тоже не работает на субдомене. Тут по ходу проблема именно в редиректе. Но как без редиректа не плодить флэшки непонятно.

Старый 17.06.2008, 23:31
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 6  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
Редирект происходит до загрузки флеша.
Создайте js функцию которая будет создавать окно, а не вызывайте window.open из флеша.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 17.06.2008, 23:44
s8000_1 вне форума Посмотреть профиль Отправить личное сообщение для s8000_1 Найти все сообщения от s8000_1
  № 7  
Ответить с цитированием
s8000_1
 
Аватар для s8000_1

Регистрация: Jun 2007
Сообщений: 374
Уточню.

Во флэшке есть кнопка, по нажатию которой всплывает окно. Не работает именно метод ExternalInterface.call (как я уже писал выше, обычный js-алерт из флэша тоже не работает на субдомене).
Если флэшка физически не находится в папке sub.site.ru/www/flash/ (а находится в папке ../../site.ru/www/flash/), то ExternalInterface не работает; если же в этой папке флэшка лежит, то все прекрасно запускается. Но тогда получается что я должен размещать флэшку и на домене, и на субдомене.

upd: Потестил еще, не работает именно ExternalInterface.call с передачей параметров. Просто js-функция вызывается.


Последний раз редактировалось s8000_1; 18.06.2008 в 03:59.
Старый 18.06.2008, 05:58
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 8  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
В SWFObject установите allowScriptAccess равным "always", я правде не пользуюсь SWFObject, но у меня после этого заработало.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

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

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

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


 


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


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