网上的大部分文章都是一般写给自己看的
今天我把flex使用外部参数说详细点
从头说起
我们假设新建一个工程叫test 然后 在编译完后bin目录下有一个test.html文件 我们可以从这里开始打开我们编译完的test程序
这个test.html从哪里来的呢?
看test工程的根目录下有一个html-template目录 里面有一个index.template.html 这就是test.html的原身了
打开看看 看重点片断
2 // DO NOT MODIFY THE FOLLOWING FOUR LINES
3 // Location visited after installation is complete if installation is required
4 var MMPlayerType = (isIE == true) ? "ActiveX" : "PlugIn";
5 var MMredirectURL = window.location;
6 document.title = document.title.slice(0, 47) + " - Flash Player Installation";
7 var MMdoctitle = document.title;
8
9 AC_FL_RunContent(
10 "src", "playerProductInstall",
11 "FlashVars", "MMredirectURL="+MMredirectURL+'&MMplayerType='+MMPlayerType+'&MMdoctitle='+MMdoctitle+"",
12 "width", "${width}",
13 "height", "${height}",
14 "align", "middle",
15 "id", "${application}",
16 "quality", "high",
17 "bgcolor", "${bgcolor}",
18 "name", "${application}",
19 "allowScriptAccess","sameDomain",
20 "type", "application/x-shockwave-flash",
21 "pluginspage", "http://www.adobe.com/go/getflashplayer"
22 );
23 } else if (hasRequestedVersion) {
24 // if we've detected an acceptable version
25 // embed the Flash Content SWF when all tests are passed
26 AC_FL_RunContent(
27 "src", "${swf}",
28 "width", "${width}",
29 "height", "${height}",
30 "align", "middle",
31 "id", "${application}",
32 "quality", "high",
33 "bgcolor", "${bgcolor}",
34 "name", "${application}",
35 "allowScriptAccess","sameDomain",
36 "type", "application/x-shockwave-flash",
37 "pluginspage", "http://www.adobe.com/go/getflashplayer"
38 );
39 } else { // flash is too old or we can't detect the plugin
40 var alternateContent = 'Alternate HTML content should be placed here. '
41 + 'This content requires the Adobe Flash Player. '
42 + '<a href=http://www.adobe.com/go/getflash/>Get Flash</a>';
43 document.write(alternateContent); // insert non-flash content
44 }
45 // -->
46 </script>
47 <noscript>
48 <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
49 id="${application}" width="${width}" height="${height}"
50 codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab">
51 <param name="movie" value="${swf}.swf" />
52 <param name="quality" value="high" />
53 <param name="bgcolor" value="${bgcolor}" />
54 <param name="allowScriptAccess" value="sameDomain" />
55 <embed src="${swf}.swf" quality="high" bgcolor="${bgcolor}"
56 width="${width}" height="${height}" name="${application}" align="middle"
57 play="true"
58 loop="false"
59 quality="high"
60 allowScriptAccess="sameDomain"
61 type="application/x-shockwave-flash"
62 pluginspage="http://www.adobe.com/go/getflashplayer">
63 </embed>
64 </object>
65 </noscript>
看 if ( hasProductInstall && !hasRequestedVersion ) 这里的意思是 在用产品安装 但是版本不对
else
AC_FL_RunContent(
"src", "${swf}",
"width", "${width}",
"height", "${height}",
"align", "middle",
"id", "${application}",
"quality", "high",
"bgcolor", "${bgcolor}",
"name", "${application}",
"allowScriptAccess","sameDomain",
"type", "application/x-shockwave-flash",
"pluginspage", http://www.adobe.com/go/getflashplayer,
"flashvars","FileName=1.txt"
//这里需要注意到是 如果上面段中已经有flashvars的话 直接把这个串加载它们里面如
"FlashVars", "FileName=1.txt&MMredirectURL="+MMredirectURL+'&MMplayerType='+MMPlayerType+'&MMdoctitle='+MMdoctitle+"",
);
好了 看到这里了
我们说说如果添加外部参数
使用外部参数 就在<param>
<param name="flashvars" value="FileName=1.txt" />
这段话加在哪里很重要 如果是用在flexbuilder生成的html中 则加在
index.template.html 中的 看上面的红色大字体 这里 一般就可以了 千万不要加到 最下面的
<noscript>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" 段中
因为不会起作用 会让你浪费很多时间
如果是你自己的网页中添加flash元素一般l 看下面红字 就好了
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="866" height="506">
<param name="movie" value="AlimamaCut.swf" />
<param name="quality" value="high" />
<param name="allowScriptAccess" value="sameDomain" />
<param name="flashvars" value="FileName=1.txt"/>
<embed src="AlimamaCut.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="866" height="506" allowScriptAccess="sameDomain">
</embed>
</object></td>
flex中如何使用外部参数 则
var str:string = Application.application.parameters.FileName;
注意 Application.application.parameters. 后面不会自动提示的 你只要
<param name="flashvars" value="FileName=1.txt"/> 里面的 写就可以了(看绿色字)
<param name="flashvars" value="FileName=1.txt&???=???"/> 也可以多个这么写