1.getURL向浏览器发送信息
格式:getURL(“地址”,“接收窗口”,“方式”)
例子:
建一个test.fla文档,第一帧
建三个button(btu1,btu2,btu3)
建一个Textinput(input1)
AS脚本:
functionopensite(){
this.getURL("http://www.macromedia.com","_self");
}
varstr:String;
functionpassva(){
str=this.input1.text;
this.getURL("http://localhost/test.asp","_blank","GET");
}
functionincrease(){
this.getURL("javascript:alert(’SayHello!’)");
}
btu1.addEventListener("click",mx.utils.Delegate.create(this,opensite));
btu2.addEventListener("click",mx.utils.Delegate.create(this,passva));
btu3.addEventListener("click",mx.utils.Delegate.create(this,increase));
在IIS WEB SERVER上建文档test.asp,加入如下语句:
<formname="form1"method="post"action="">
<inputtype="text"name="textfield"value=<%=Request.QueryString("str")%>>
</form>
1. loadVariables类
getURL只能向脚本发送数据,不可以接收从脚本回传,而loadVariables就可以实现。
例子
ASP脚本, CODEPAGE="65001"是使脚本支持Unicode,文档放于IIS WEB SERVER根目录下:
<%@LANGUAGE="JAVASCRIPT"CODEPAGE="65001"%>
<%
restr="Hi,"+Request.Form("str")
Response.Write("rebackdata="+restr)
%>
<%@LANGUAGE="JAVASCRIPT"CODEPAGE="65001"%>
<%
restr="Hi,"+Request.Form("str")
Response.Write("rebackdata="+restr)
%>
Flash影片,在场景建立一个MC(mc1_int),内有一个组件Button(btu1)和一个Label(label1).
场景第一帧的AS
functionrecievedara(){
this.loadVariables("http://localhost/pass.asp","POST");
}
_root.mc1_int.btu1.addEventListener("click",mx.utils.Delegate.create(_root.mc1_int,recievedara));
实例mc1_int的AS:
onClipEvent(data){
_root.mc1_int.label1.text=rebackdata.toString();
}
实例mc1_int元件的AS,变量str是存储要发送给ASP脚本的的内容
varstr=this.label1.text;
3
LoadVars
使用LoadVars可以更好地控制数据的传递与接收.
例子:
场景上有一个组件Textarea(textarea1)和三个组件Button(btu1,btu2,btu3)
Flash的AS
varlv=newLoadVars();
varll=newLoadVars();
lv.str="FlashtoIIS";
functionhandle_btu1(){
lv.id=this.label;
lv.send("http://localhost/fmx/pass2.asp","_blank","POST");
//无论是“POST”,还是“GET”方式,FLASH都是以“GET”方式发送。
}
functionhandle_btu2(){
lv.id=this.label;
lv.load("http://localhost/fmx/pass2.asp");
}
functionhandle_btu3(){
lv.id=this.label;
lv.sendAndLoad("http://localhost/fmx/pass2.asp",ll,"POST");
}
this.btu1.addEventListener("click",mx.utils.Delegate.create(this.btu1,handle_btu1));
this.btu2.addEventListener("click",mx.utils.Delegate.create(this.btu2,handle_btu2));
this.btu3.addEventListener("click",mx.utils.Delegate.create(this.btu3,handle_btu3));
lv.onLoad=function(success){
_root.textarea1.text=this.rebackdata;
};
ll.onLoad=function(success){
_root.textarea1.text=_root.textarea1.text+"\n"+this.rebackdata;
};
服务器脚本存放于WEB
SERVER根目录下
<%@LANGUAGE="JAVASCRIPT"CODEPAGE="65001"%>
<%
restr=Request("str")
reid=Request("id")
Response.Write("rebackdata=Sayhellofrom"+reid+":"+restr)
%>
4 ExternalInterface
Flash发展到8时,又加入了一个类flash.external.ExternalInterface,它可以在影片中调用容器定义的函数,容器也可以调用影片定义的函数。
例子:
在场景中建一个label,命名为label1,文档保存为test.fla
第一帧代码:
importflash.external.*;
varmethodName:String="goHome";
varinstance:Object=this;
varmethod:Function=goToMacromedia;
varwasSuccessful:Boolean=ExternalInterface.addCallback(methodName,instance,method);
vartxtField:TextField=this.createTextField("txtField",this.getNextHighestDepth(),0,0,200,50);
txtField.border=true;
txtField.text=wasSuccessful.toString();
functiongoToMacromedia():Boolean{
txtField.text="http://www.macromedia.com";
getURL("http://www.macromedia.com","_self");
returntrue;
}
IE中的代码:
functioncallExternalInterface(){
b=thisMovie("test").goHome();
if(b){
alert("Theboxischecked.");
}
}
functionthisMovie(movieName){
if(navigator.appName.indexOf("Microsoft")!=-1){
returnwindow[movieName];
}
else{
returndocument[movieName];
}
}
嵌入Flash对象
<objectclassid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0"width="550"height="400"id="test"align="middle">
<paramname="allowScriptAccess"value="sameDomain"/>
<paramname="movie"value="test.swf"/>
<paramname="quality"value="high"/>
<paramname="bgcolor"value="#ffffff"/>
<paramname="swLiveConnect"value="true"/>
<embedsrc="test.swf"quality="high"bgcolor="#ffff00"width="550"height="400"name="test"swLiveConnect="true"align="middle"allowScriptAccess="sameDomain"type="application/x-shockwave-flash"pluginspage="http://www.macromedia.com/go/getflashplayer"/>
</object>