Как получить URL Param для Flash? - PullRequest
1 голос
/ 05 мая 2011


Я работаю над веб-сайтом Flash некоторое время, но только сейчас я заметил, что ссылка не меняется (это нормально для приложения Flash).Но дело в том, что сайт должен быть «общедоступным».Итак, моя проблема:
Как я могу получить параметр из URL и прочитать его во Flash?
Например, когда URL-адрес http://www.thewebsite.ext/index.php?article=245
Приложение Flash должно знать, что статья 245 чтобы он мог перейти к нужной статье, а не только к домашней странице.
Как это можно сделать?
(Кстати, я использую Actionscript 2)

Редактировать:
Вот исходный код SWF-файла;

<script type="text/javascript">
AC_FL_RunContent( 'codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0','width','100%','height','100%','id','PortfolioScroller','src','media/casescroller2','quality','high','pluginspage','http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash','wmode','opaque','movie','media/casescroller2', 'FlashVars', 'pfcase=1' ); //end AC code
</script><noscript><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0" width="100%" height="100%">
    <param name="movie" value="media/casescroller2.swf?pfcase=1" />
    <param name="quality" value="high" />
    <param name="id" value="PortfolioScroller" />
    <param name="wmode" value="opaque" />
    <param name="FlashVars" value="pfcase=1">
    <embed src="media/casescroller2.swf?pfcase=1" FlashVars="pfcase=1" width="100%" height="100%" id="PortfolioScroller" quality="high" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" wmode="opaque" name="PortfolioScroller"></embed>
  </object>
</noscript>

ActionScript 2;

_root.movieclip1.visible = false;
var pfcase;
if(pfcase){
   _root.movieclip1.visible = true;
}

Этот скрипт предназначен только для проверки.(мувиклип становится видимым, если pfcase не пуст?)

Ответы [ 4 ]

2 голосов
/ 05 мая 2011

Другой подход - использовать SWFAddress .При этом используется хэш URL, поэтому ваш URL будет выглядеть так:

http://www.thewebsite.ext/#article=245

В загрузку включены примеры.

1 голос
/ 05 мая 2011

Вы можете получить URL страницы (или только параметры), вызвав JavaScript через ExternalInterface.

Это фрагмент кода AS3, который я недавно отправил коллеге (несколько измененный здесь), думаю, он будет работать и в AS2:

// Get the entire URL for the page, like "http://www.thewebsite.ext/index.php?article=245"
var url:String = String(ExternalInterface.call("function() { return String(window.location); }")).toLowerCase();

// Split the string on the argument that we are after, incl. the =
var parts:Array = url.split("article=");

// parts[1] will be the string following "article=", or undefined if there was no "article=" in the URL
if(parts[1])
{
    // There was an article argument. 
    // parseInt() can be used to convert it to an int, and will also get rid of whatever comes after, if anything.
    // For example, parseInt("123&foo=bar") will return 123, ignoring what comes after the last number in the string.
    trace(parseInt(parts[1]));
}

Вы можете использовать document.location.search вместо document.location, чтобы получить только часть аргумента URL-адреса, включая в этом случае символ?, Например «? Article = 245».

Редактировать : Но поскольку вы пометили вопрос с помощью PHP, я согласен с Tania и shadyyx в том, что добавление значения в приложение Flash с использованием flashvars, вероятно, лучше, поскольку оно не зависит от JavaScript и поддержки для ExternalInterface, а также сделает значения немедленно доступными, как только загрузится SWF. В любом случае я оставлю здесь решение JavaScript / ExternalInterface, оно может кому-то пригодиться.

0 голосов
/ 05 мая 2011

с помощью flashvars.Во Flash Вы должны слушать конкретный flashvar, например articleUrl, а в HTML должно быть установлено

<object ... >
     <param name="FlashVars" value="articleUrl=http://www.thewebsite.ext/index.php?article=245"/>
</object>

ИЛИ

<embed ... FlashVars="articleUrl=http://www.thewebsite.ext/index.php?article=245" ... />
0 голосов
/ 05 мая 2011

Вы должны сделать flashvars, чтобы сделать эту работу.http://kb2.adobe.com/cps/164/tn_16417.html

...