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
- <?xml version="1.0" encoding="utf-8"?>
- <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" verticalAlign="middle" backgroundColor="white" creationComplete="init()">
- <mx:Script>
- <![CDATA[
- private function init():void {
- // The FlashVars
- var obj:Object = Application.application.parameters;
- var item:String;
- arrColl = new ArrayCollection();
- /* Populate the ArrayCollection object with the FlashVars. */
- for (item in obj) {
- arrColl.addItem({key:item, value:obj[item]});
- }
- dataGrid.dataProvider = arrColl;
- }
- ]]>
- </mx:Script>
- <mx:ArrayCollection id="arrColl" />
- <mx:DataGrid id="dataGrid" />
- </mx:Application>
然后打开*.html文件,作如下修改:
- AC_FL_RunContent(
- "src", "main",
- "width", "100%",
- "height", "100%",
- "align", "middle",
- "id", "main",
- "quality", "high",
- "bgcolor", "#869ca7",
- "name", "main",
- "allowScriptAccess","sameDomain",
- "type", "application/x-shockwave-flash",
- "pluginspage", "http://www.adobe.com/go/getflashplayer"
- "FlashVars", "name=peter&site=flexexamples.com"
- );
还需要在<noscript />中修改<object />和<embed />标签:
- <noscript>
- <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
- id="${application}" width="${width}" height="${height}"
- codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab">
- <param name="movie" value="${swf}.swf" />
- <param name="quality" value="high" />
- <param name="bgcolor" value="${bgcolor}" />
- <param name="allowScriptAccess" value="sameDomain" />
- <param name="flashVars" value="url=woo" />
- <embed src="${swf}.swf" quality="high" bgcolor="${bgcolor}"
- width="${width}" height="${height}" name="${application}" align="middle"
- play="true"
- loop="false"
- quality="high"
- allowScriptAccess="sameDomain"
- flashVars="url=woo"
- type="application/x-shockwave-flash"
- pluginspage="http://www.adobe.com/go/getflashplayer">
- </embed>
- </object>
- </noscript>
代码:Peter deHaan 翻译/整理/编译:minidxer
Topics:
Flex |
Tags: Application.parameters, FlashVars, HTML template