Flex中如何从嵌入HTML模板中抓取FlashVars的例子

By Minidxer | July 17, 2008

在前面的Flex中如何利用mx:HTTPService标签读取文本文件中的name/value这样的一对数据并显示在DataGrid中的例子中我们曾经涉及到FlashVars,接下来的例子演示了Flex中如何从嵌入HTML模板中抓取FlashVars。更加具体的用法我们还可以参考Adobe文档中心的“Using flashVars”“Using the Application.application.parameters object”

让我们先来看一下Demo可以右键View Source或点击这里察看源代码):


下面是完整代码(或点击这里察看):

Download: main.mxml
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" verticalAlign="middle" backgroundColor="white" creationComplete="init()">
  3.  
  4.     <mx:Script>
  5.         <![CDATA[
  6.             private function init():void {
  7.                 // The FlashVars
  8.                 var obj:Object = Application.application.parameters;
  9.                 var item:String;
  10.  
  11.                 arrColl = new ArrayCollection();
  12.  
  13.                 /* Populate the ArrayCollection object with the FlashVars. */
  14.                 for (item in obj) {
  15.                     arrColl.addItem({key:item, value:obj[item]});
  16.                 }
  17.  
  18.                 dataGrid.dataProvider = arrColl;
  19.             }
  20.         ]]>
  21.     </mx:Script>
  22.  
  23.     <mx:ArrayCollection id="arrColl" />
  24.  
  25.     <mx:DataGrid id="dataGrid" />
  26.  
  27. </mx:Application>

然后打开*.html文件,作如下修改:

  1. AC_FL_RunContent(
  2.     "src", "main",
  3.     "width", "100%",
  4.     "height", "100%",
  5.     "align", "middle",
  6.     "id", "main",
  7.     "quality", "high",
  8.     "bgcolor", "#869ca7",
  9.     "name", "main",
  10.     "allowScriptAccess","sameDomain",
  11.     "type", "application/x-shockwave-flash",
  12.     "pluginspage", "http://www.adobe.com/go/getflashplayer"
  13.     "FlashVars", "name=peter&site=flexexamples.com"
  14. );

还需要在<noscript />中修改<object />和<embed />标签:

  1. <noscript>
  2.       <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
  3.             id="${application}" width="${width}" height="${height}"
  4.             codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab">
  5.             <param name="movie" value="${swf}.swf" />
  6.             <param name="quality" value="high" />
  7.             <param name="bgcolor" value="${bgcolor}" />
  8.             <param name="allowScriptAccess" value="sameDomain" />
  9.             <param name="flashVars" value="url=woo" />
  10.             <embed src="${swf}.swf" quality="high" bgcolor="${bgcolor}"
  11.                 width="${width}" height="${height}" name="${application}" align="middle"
  12.                 play="true"
  13.                 loop="false"
  14.                 quality="high"
  15.                 allowScriptAccess="sameDomain"
  16.                 flashVars="url=woo"
  17.                 type="application/x-shockwave-flash"
  18.                 pluginspage="http://www.adobe.com/go/getflashplayer">
  19.             </embed>
  20.     </object>
  21. </noscript>
代码:Peter deHaan 翻译/整理/编译:minidxer

Topics: Flex | Tags: , ,

Search Posts

Archives

Sponsored Ads