先說flash as3吧,可以用root.loaderInfo.parameters
AS3類 GSPManager.as 代碼:
package
{
import flash.display.Sprite;
import flash.events.Event;
import flash.text.TextField;
public class GSPManager extends Sprite
{
public function GSPManager()
{
this.addEventListener(Event.ADDED_TO_STAGE,addedToStageHandler);
}
private function addedToStageHandler(e:Event):void
{
this.removeEventListener(Event.ADDED_TO_STAGE,addedToStageHandler);
init();
}
private function init():void
{
var out_txt:TextField = new TextField();
//邊框
out_txt.border = true;
//邊框顏色
out_txt.borderColor = 0x80FF3300;
//大小
out_txt.width = 100;
out_txt.height = 20;
//位置
out_txt.x = (stage.stageWidth - out_txt.width)/2;
out_txt.y = (stage.stageHeight - out_txt.height)/2;
//添加到舞臺
addChild(out_txt);
//獲得參數對象
var param:Object = root.loaderInfo.parameters;
if (param["name"]!=null)
{
out_txt.text = param["name"] + param["num"];
trace("value:"+param["name"]);
//判斷
}
else
{
out_txt.text = "null";
trace("value:null");
}
}
}
}
GetSwfParam.fla 綁定的文檔類為GSPManager.as ,在文檔類綁定框里寫GSPManager這個就可以了
之后編譯出來的GetSwfParam.swf 就可以添加到頁面了
Java web頁面代碼:
<%@ page language="java" import="java.util.*" contentType="text/html;charset=GBK"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body>
<object id="g" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/_cabs/flash/swflash.cab#version=6,0,29,0" width="300" height="200">
<param name="movie" value="GetSwfParam.swf?name=sange&num=66" />
<param name="quality" value="high" />
<param name="allowScriptAccess" value="sameDomain" />
<param name="scale" value="exactfit" />
<embed name="g" src="GetSwfParam.swf" quality="high" scale="exactfit" align="middle" play="true" loop="false" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="300" height="200" ></embed>
</object>
</body>
</html>
這里要說的是swf后有很多參數就用&符號 , 比如GetSwfParam.swf?name=sange&num=66&id=1
現在說Flex了,因為讓同事也做了這樣的東西,但他只會Flex,他沒弄出來,所以我試下,發現用root沒反映,但我很肯定Flex應該也可以弄出來,發現跟flash as3確實不同,不能用root,因為Flex中沒有root這個概念。問了群里的人,收獲大了,原來就Application,哈哈,不就是根節點么,也就相當于root,就是名稱不一樣。
Flex就用Application.application.parameters
GetSwfParam.mxml 代碼:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" backgroundColor="#ffffff" layout="absolute" creationComplete="init()">
<mx:Script>
<![CDATA[
private function init():void
{
//獲得參數對象
var param:Object = Application.application.parameters;
if(param["name"] != null)
{
mytxt.text = param["name"];
}
else
{
mytxt.text = "null";
}
}
]]>
</mx:Script>
<mx:TextInput id="mytxt" x="60" y="47"/>
</mx:Application>
把編譯好的swf添加到頁面就可以了。同上,Java web頁面代碼不變。