天天看點

【Flash】網頁向Flash傳參數、JS向Flash傳參數、Flash向網頁傳參數

比如網頁裡插入的Flash代碼是這樣的:

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="550" height="400" id="Test" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="Test.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<embed src="Test.swf" quality="high" bgcolor="#ffffff" width="550" height="400" name="Test" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
           

 也有的Flash代碼會是這樣的:

<object id="Test" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="1000" height="518">
  <param name="movie" value="/images/index.swf" />
  <param name="quality" value="high" />
  <param name="wmode" value="transparent" />
  <param name="swfversion" value="15.0.0.0" />
  <!-- 下一個對象标簽用于非 IE 浏覽器。是以使用 IECC 将其從 IE 隐藏。 -->
  <!--[if !IE]>-->
  <object type="application/x-shockwave-flash" data="/images/index.swf" width="1000" height="518">
    <!--<![endif]-->
    <param name="quality" value="high" />
    <param name="wmode" value="transparent" />
    <param name="swfversion" value="15.0.0.0" />
    <!--[if !IE]>-->
  </object>
  <!--<![endif]-->
</object>
           

★★★★★★網頁向Flash裡傳參數★★★★★★

現在需要傳兩個參數myVar1=xxxxx和myVar2=yyyyy給Flash,可以用以下幾種方法:

方法一:

<param name="movie" value="Test.swf" />

替換成以下代碼:

<param name="movie" value="Test.swf?myVar1=xxxxx&myVar2=yyyyy" />

方法二:

增加以下一行代碼:

<param name="FlashVars" value="myVar1=xxxxx&myVar2=yyyyy" />

注意如果如果Flash代碼是前面講的第二種,需要在兩個<object>标簽裡都要加以上代碼,否則非IE浏覽器會失效。

而在Flash檔案裡面,這樣擷取:

var myPara1:String=stage.loaderInfo.parameters.myVar1;
var myPara2:String=stage.loaderInfo.parameters.myVar2;
my_txt.text = "網頁中的myVar1參數:"+myPara1;
var vname:String = myPara2;
           

★★★★★★JS向Flash裡傳參數★★★★★★

ObjectID.SetVariable(參數名,參數值); 
1.在OBJECT标簽中,插入id="Test"
2.在EMBED标簽中,插入name="Test"和swLiveConnect="true",確定沒有使用id屬性;
本例的ObjectID已經設為Test,具體做法如下:在</object>标記的後面(也就是加載FLASH影片之後)直接加入以下代碼:
<script language=javascript>
    Test.SetVariable("myVar1","xxxxx");
    Test.SetVariable("myVar2","yyyyy");
</script>
           

Flash裡擷取方法同上段。

★★★★★★Flash向網頁傳參數(到URL)★★★★★★

search_btn.addEventListener("click",goSearch);
function goSearch(me:MouseEvent){
    var url:String = "http://search.yahoo.com/search";
    var my_req:URLRequest = new URLRequest(url);
    var variables:URLVariables = new URLVariables();
    variables.decode("p=" + search_txt.text);
    //上面那句也可以寫成 variables.p = search_txt.text;
    my_req.data = variables;
    my_req.method = URLRequestMethod.POST;
    navigateToURL(my_req);
}
           

★★★★★★Flash向網頁傳參數(到頁面控件)★★★★★★