2011-05-05 2 views
1


지금 당장 Flash 웹 사이트에서 작업하고 있습니다 만, 지금은 링크가 변경되지 않는 것으로 나타났습니다 (Flash 응용 프로그램에서는 정상입니다). 그러나 문제는 웹 사이트가 '공유 가능'해야한다는 것입니다. 그래서 내 문제는;
URL에서 param을 가져 와서 Flash로 읽는 방법은 무엇입니까? 예를 들어
, URL이 http://www.thewebsite.ext/index.php?article=245
플래시 응용 프로그램이 문서는 245은 그래서 대신 홈페이지의 오른쪽 기사에 갈 수 있음을 알아야한다이다.
어떻게이 작업을 수행 할 수 있습니까?
(그런데, 나는 액션 스크립트 2를 사용하고 있습니다)URL Param을 플래시하는 방법은 무엇입니까?

편집 : 여기
는 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> 

액션 스크립트 2;

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

이 스크립트는 일을 테스트하는 것입니다. pfcase가 비어 있지 않으면 MovieClip이 표시됩니다.

답변

2

또 다른 접근법은 SWFAddress을 사용하는 것입니다.

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

이 다운로드에 포함 된 사례가있다 : 당신의 URL이과 같이 될 수 있도록 이는 URL 해시를 사용합니다.

+0

PHP-XML 파일을 사용하여 Flash에서 내용을 업데이트합니다. 즉, SWFAddress의 Flash 예제에서와 같이 프레임에 이름을 지정할 수 없다는 것입니다. –

0

이 작업을하려면 플래시를 사용해야합니다. http://kb2.adobe.com/cps/164/tn_16417.html

+0

FlashVars를 사용해 보았지만 작동하지 않았습니다. 아마도 잘못 사용했을 수 있습니다. OP 코드를 업데이트했습니다. –

+0

기사 ID 만 플래시 매개 변수로 전달할 수 있습니다.그런 다음 actionscript를 통해 ID를 확인하고 적절한 페이지로 이동하십시오. (특정 페이지로 이동하려면 플래시하는 것이 좋습니다 - 페이지 URL이 아님) –

+0

그게 내가 시도한 것입니다 (원래 게시물 확인).하지만 작동하지 않았습니다. 나는 내가 뭔가 잘못하고 있다고 생각해. –

0

플래시 바를 사용합니다. 플래시에서 콘크리트 플래시 바를 들어야합니다. articleUrl 및 HTML에 당신은 ExternalInterface를 통해 자바 스크립트를 호출하여 페이지 (또는 매개 변수)의 URL을 얻을 수 있습니다

<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

나는이 일을 시도, 소스 코드에 대한 OP를 확인 –

1

가 설정해야합니다.

// 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.locationdocument.location.search을 사용할 수 있습니다

내가 최근 동료 (약간 여기 수정), 내가 너무 AS2에서 작동합니다 생각에 전송 AS3 코드의 조각 이 경우 "? article = 245"와 같이?를 포함하여 URL의 인수 부분.

편집 : 당신이 PHP와 질문에 태그 때문에, 나는, 타니아에 동의하고 ExternalInterface를위한 자바 스크립트 및 지원에 의존하지 않기 때문에 FlashVars를를 사용하여 Flash 응용 프로그램에 값을 납품하는 것은, 아마 더 나은 것을 shadyyx 또한 swf가로드되는 즉시 값을 즉시 사용할 수 있도록합니다. 어쨌든 여기 JavaScript/ExternalInterface 솔루션을 그대로두면 누군가에게 유용 할 수 있습니다.

관련 문제