Проблема перенаправления флэш-памяти, когда не загружен с того же Vhost - PullRequest
0 голосов
/ 11 февраля 2010

У нас есть флэш-файл, который принимает параметр URL для перенаправления по клику. Когда он размещен в основном домене, а SWF-файл включен в HTML из основного домена, перенаправление работает правильно.

Однако, когда он размещен во вторичном домене, а SWF-файл включен в HTML из первичного домена, перенаправление не работает. Я добавил файл crossdomain.xml как в основной, так и в дополнительный домен, хотя это может помочь. Содержимое обоих crossdomain.xml файлов включено ниже.

Что мне не хватает?

crossdomain.xml

<cross-domain-policy>
    <allow-access-from domain="*"/>
</cross-domain-policy>

РЕДАКТИРОВАТЬ : Вот код действия, используемый для «перенаправления».

* 1019 ActionScript *

on (release) {
    getURL(clickTag);
}

clickTag - это параметр, который мы передаем через строку запроса.

РЕДАКТИРОВАТЬ : после добавления allowScriptAccess="always" к встраиваемому коду и <param name="allowScriptAccess" value="always" /> к тегу object открывается окно, и местоположение переходит к /undefined. Мысли?

РЕДАКТИРОВАТЬ : По запросу вот фактический объект / код встраивания, который мы используем:

<object type="application/x-shockwave-flash" data="/files/2348.swc" width="300" height="250" class="ad" onclick="ad_click(169);">
<param name="movie" value="/files/2348.swc?clickTAG=http://www.google.com"/> 
<param value="high" name="quality"> 
<param value="#FFFFFF" name="bgcolor"> 
<param value="always" name="allowScriptAccess"> 
<param value="transparent" name="wmode">
</object> 

Ответы [ 3 ]

1 голос
/ 16 февраля 2010

Попробуйте установить allowScriptAccess в always в объекте и внедрить теги включающего HTML.

Значение по умолчанию "sameDomain" для последних версий Flash Player, которое объясняет ваше текущее поведение.


Для вашего редактирования может быть полезно иметь больше информации, но вам, вероятно, нужно получить доступ к вашим параметрам, используя _root или _level0, а не напрямую, как указано выше. См. Документацию Adobe по данной проблеме и описание _root.

.

Основываясь на вашем коде для встраивания, я все же думаю, что, возможно, вам стоит взглянуть на _root.

Ваш тег объекта немного нестандартен, поэтому могут быть некоторые проблемы:

  1. У вас, похоже, есть проблемы с делом, предложенные Джошем здесь: clickTag против clickTAG
  2. Помогает ли добавить параметр в URL-адрес атрибута data?
  3. Возможно, попытка Adobe предложила теги , поможет?
  4. Кроме того, каково значение упаковки вашего файла как SWC, а не SWF?

Если у вас есть контроль над SWF, вы можете перейти непосредственно к FlashVars .

0 голосов
/ 16 февраля 2010

Возможно, вы могли бы использовать Javascript для фактического перенаправления.

Например, из кода AS3 используйте ExternalInterface для вызова функции JS, которая выполняет перенаправление.

import flash.external.ExternalInterface; var retval:int = ExternalInterface.call("redirect()", "<a href="http://the_redirect_url/">http://the_redirect_url/</a>");

Тогда в JS:

function redirect(url) { window.location = url; }

Отказ от ответственности: не проверял это. ; -)

0 голосов
/ 16 февраля 2010

, чтобы ответить на вторую часть вопроса относительно неопределенности - тег click учитывает регистр, убедитесь, что параметр и переменная совпадают с регистром, или вы можете добавить следующий фрагмент кода просто для уверенности:

on (release) {
   var myCT:String = clickTAG;
   if(myCT == ""){
      myCT = clickTag;
   } 
   if(myCT == ""){
      myCT = clicktag;
   } 
   getURL(myCT, "_blank"); 
}
...