flex 參數

          flash使用FlashVars接收html參數

          本教程主要介紹HTML網頁如何取得形如test.html?foo=mytest的foo參數,以及在HTML網頁中如何向swf傳遞參數。

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


          下面的這段js代碼則可以更加細化獲取HTML網頁某一參數
          <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參數
          var programstr = getparastr("program");
          document.write(programstr);
          //-->
          </script>


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

          方法二:路徑參數,如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=簡體中文-中國" />
          <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=簡體中文-中國" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />


          通過上面的代碼,在SWF(FlashVars.swf)中就可以直接獲取foo、program、language變量數據。FlashVars.fla獲取FlashVars參數的代碼如下:
          // 創建三個文本字段
          _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參數:"+foo;
          program_txt.text = "HTML中的program參數:"+program;
          language_txt.text = "HTML中的language參數:"+language;


          三、兩者的有效結合。
          在HTML網頁中使用js獲取參數,然后將獲取的參數作為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) 評論(0)  編輯  收藏 所屬分類: Flex

          導航

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

          統計

          常用鏈接

          留言簿(6)

          隨筆分類

          隨筆檔案(17)

          文章分類(86)

          收藏夾(3)

          flex blog

          good site

          java blog

          my friend

          tools

          抓蝦

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 上栗县| 达孜县| 通化市| 宕昌县| 长海县| 会宁县| 堆龙德庆县| 集安市| 闸北区| 鄂托克前旗| 莱西市| 蚌埠市| 凤山市| 云安县| 吉林市| 贵阳市| 集贤县| 合山市| 天津市| 临安市| 剑河县| 喀什市| 张家港市| 神木县| 北辰区| 阿巴嘎旗| 东乡县| 长宁县| 柏乡县| 张北县| 丹东市| 阜新市| 龙游县| 桦南县| 西贡区| 泸定县| 奉新县| 临西县| 始兴县| 兴国县| 陵水|