flex 參數(shù)

          flash使用FlashVars接收html參數(shù)

          本教程主要介紹HTML網(wǎng)頁(yè)如何取得形如test.html?foo=mytest的foo參數(shù),以及在HTML網(wǎng)頁(yè)中如何向swf傳遞參數(shù)。

          一、在HTML網(wǎng)頁(yè)中使用js獲取參數(shù)。
          我們知道HTML頁(yè)面是在客戶端執(zhí)行的,這樣要獲取參數(shù)必須使用客戶端腳本(如JavaScript),在這點(diǎn)上不同于服務(wù)器端腳本獲取參數(shù)方式。
          下面的這段js代碼獲取HTML網(wǎng)頁(yè)形如"test.html?foo=mytest&program=flash" "?"后所有參數(shù)。
          <script language=javascript>
          <!--
          var hrefstr,pos,parastr;
          hrefstr = window.location.href;
          pos = hrefstr.indexOf("?");
          parastr = hrefstr.substring(pos+1);
          if (pos>0){
          document.write("所有參數(shù):"+parastr);
          } else {
          document.write("無(wú)參數(shù)");
          }
          //-->
          </script>


          下面的這段js代碼則可以更加細(xì)化獲取HTML網(wǎng)頁(yè)某一參數(shù)
          <script language=javascript>
          <!--
          function getparastr(strname) {
          var hrefstr,pos,parastr,para,tempstr;
          hrefstr = window.location.href;
          pos = hrefstr.indexOf("?")
          parastr = hrefstr.substring(pos+1);

          para = parastr.split("&");
          tempstr="";
          for(i=0;i<para.length;i++)
          {
          ?tempstr = para[i];
          ?pos = tempstr.indexOf("=");
          ?if(tempstr.substring(0,pos) == strname) {
          ? return tempstr.substring(pos+1);
          ?}
          }
          return null;
          }
          // 獲取program參數(shù)
          var programstr = getparastr("program");
          document.write(programstr);
          //-->
          </script>


          二、在HTML網(wǎng)頁(yè)中向swf傳遞參數(shù)。
          方法一:在網(wǎng)頁(yè)中使用js,SetVariable設(shè)置flashobject中的變量,代碼如:
          // "HtmlToSwf"為網(wǎng)頁(yè)中的flashobject ID
          HtmlToSwf.SetVariable("_root.info_str","Happy Newyear");

          方法二:路徑參數(shù),如test.swf?foo=happy2005
          方法三:使用FlashVars,以下主要介紹FlashVars的用法。使用FlashVars后嵌入HTML的flashobject代碼如下:
          <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="550" height="400" id="FlashVars" align="middle">
          <param name="allowScriptAccess" value="sameDomain" />
          <param name="movie" value="FlashVars.swf" />
          <param name="FlashVars" value="foo=happy2005&program=flash&language=簡(jiǎn)體中文-中國(guó)" />
          <param name="quality" value="high" />
          <param name="bgcolor" value="#ffffff" />
          <embed src="FlashVars.swf" quality="high" bgcolor="#ffffff" width="550" height="400" name="FlashVars" align="middle" allowScriptAccess="sameDomain" FlashVars="foo=happy2005&program=flash&language=簡(jiǎn)體中文-中國(guó)" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />


          通過(guò)上面的代碼,在SWF(FlashVars.swf)中就可以直接獲取foo、program、language變量數(shù)據(jù)。FlashVars.fla獲取FlashVars參數(shù)的代碼如下:
          // 創(chuàng)建三個(gè)文本字段
          _root.createTextField("foo_txt",1,0,0,16,16);
          _root.createTextField("program_txt",2,0,32,16,16);
          _root.createTextField("language_txt",3,0,64,16,16);
          foo_txt.autoSize = true;
          foo_txt.border = true;
          program_txt.autoSize = true;
          program_txt.border = true;
          language_txt.autoSize = true;
          language_txt.border = true;
          // 獲取FlashVars變量
          foo_txt.text = "HTML中的foo參數(shù):"+foo;
          program_txt.text = "HTML中的program參數(shù):"+program;
          language_txt.text = "HTML中的language參數(shù):"+language;


          三、兩者的有效結(jié)合。
          在HTML網(wǎng)頁(yè)中使用js獲取參數(shù),然后將獲取的參數(shù)作為FlashVars寫入flashobject傳遞給swf。代碼如下:
          <script language=javascript>
          <!--
          function writeflashobject(parastr) {
          document.write("<object classid=\"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000\" codebase=\"http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0\" width=\"550\" height=\"400\" id=\"FlashVars\" align=\"middle\"\>\n");
          document.write("<param name=\"allowScriptAccess\" value=\"sameDomain\" /\>\n");
          document.write("<param name=\"movie\" value=\"FlashVars.swf\" /\>\n");
          document.write("<param name=\"FlashVars\" value=\""+ parastr +"\" /\>\n");
          document.write("<param name=\"quality\" value=\"high\" /\>\n");
          document.write("<param name=\"bgcolor\" value=\"#ffffff\" /\>\n");
          document.write("<embed src=\"FlashVars.swf\" quality=\"high\" bgcolor=\"#ffffff\" width=\"550\" height=\"400\" name=\"FlashVars\" align=\"middle\" allowScriptAccess=\"sameDomain\" FlashVars=\""+ parastr +"\" type=\"application/x-shockwave-flash\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\" /\>");
          document.write("</object\>");
          }
          function getparastr() {
          var hrefstr,pos,parastr,para,tempstr1;
          hrefstr = window.location.href;
          pos = hrefstr.indexOf("?")
          parastr = hrefstr.substring(pos+1);
          return parastr;
          }
          var parastr = getparastr();
          writeflashobject(parastr);
          //-->
          </script>

          posted on 2007-03-19 16:50 leoli 閱讀(958) 評(píng)論(0)  編輯  收藏 所屬分類: Flex

          導(dǎo)航

          <2025年5月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          統(tǒng)計(jì)

          常用鏈接

          留言簿(6)

          隨筆分類

          隨筆檔案(17)

          文章分類(86)

          收藏夾(3)

          flex blog

          good site

          java blog

          my friend

          tools

          抓蝦

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 左权县| 湖南省| 永德县| 灵丘县| 深水埗区| 洪江市| 尼勒克县| 舟曲县| 南投市| 弥渡县| 靖远县| 新民市| 安国市| 琼中| 泾源县| 襄城县| 丹东市| 金沙县| 扬州市| 北宁市| 蓬安县| 广德县| 盐城市| 金昌市| 绥芬河市| 红桥区| 平邑县| 阿尔山市| 蒙山县| 霍州市| 柳州市| 平凉市| 慈溪市| 驻马店市| 马边| 嵩明县| 聂荣县| 冷水江市| 汉源县| 石首市| 青田县|