getURL 函数的原义是,在指定的Html页面框架(frame)中,打开指定的网页。
这里,我们把url网址写成一段Javascript脚本即可在页面中执行,如:
getURL("Javascript:alert('OK')");
这句的执行效果相当于在Html中的:
<
script
>
alert(
"
OK
"
);
</
script
>
在Flash中使用getURL函数,可以调用当前Html页面中的任何Javascript脚本。
B.在Flash中使用fscommand函数:fscommand(command:String, parameters:String) : Void
在Web浏览器中,执行后将调用JavaScript函数fscommand()moviename_DoFScommand,该函数位于包含 SWF文件的Web页中。moviename为用于EMBED标签的NAME属性或OBJECT标签的ID属性。
如:我们对SWF文件指定OBJECT标签的ID=myMovie,则调用JavaScript函数myMovie_DoFScommand。
在这种用法下,command和parameters参数可以是任意的字符串或表达式。
如Flash中执行:
fscommand(
"
upload
"
,
""
);
则web页中的:
函数将被执行,两个函数的参数依次相对应,即会有command="upload",args="";
另外,在web页中使用fscommand时,还应该指定一个参数swLiveConnect=true,如:
swLiveConnect属性的含义是:指定此参数会让Flash Player在第一次加载时,启动Java,从而使fscommand可以起作用。
2. JavaScript如何发送数据给Flash? (Javascript->Flash)
方法是在Javascript中使用SetVariable。
语法:SetVariable( variableName, value )
如下这段Javascript脚本的执行后会将Flash中名为txtbox的变量值修改为"1234":
更多关于Flash和Javascript通信的内容,可以看这里:
JavaScript 和 Flash 的通信
FLASH与JAVASCRIPT的通信
三、制作Flash。
启动Flash,新建一个空白文档,命名为:FlashUpload.fla;
如上图所示,场景背景色设为绿色,然后放置两个“动态文本”框:
上边带框线的文本框变量设置为:file,制作一个“浏览”按钮与其组合后来模仿web页中的文件域;
下边的文本框变量设置为:msg,用来显示提示信息;
最后还有一个“上传”按钮。
“浏览”按钮上添加如图代码:
“上传”按钮上添加如图代码:
这里的Flash对Javascript通信我使用了fscommand,fscommand的参数内容可以任意,我们让“浏览”按钮传递“browser”字符串过去,“上传”按钮传递“upload”字符串。后边的web页中会根据这两个字符串来进行不同的操作。使用getURL时,浏览器会产生“哒”的声音,使用fscommand则不会产生声音。
完成后保存,编译(ctrl+enter),生成FlashUpload.swf文件。
四、将FlashUpload.swf文件插入FlashUpload.html文件。
创建一个html文件:FlashUpload.html,插入FlashUpload.swf,同时编写响应fscommand命令的Javascript函数:FlashUpload_DoFScommand,完整的html文件内容如下:
");这里就是注意一些变量和值的使用,我用不同的颜色做了标识。下一步要出现的Upload.aspx文件被放置在一个宽、高、边框均为0的Iframe里,达到隐藏效果。
Flash中的fscommand使用执行后,web页中的FlashUpload_DoFScommand函数会被执行,此函数中又对隐藏的Iframe进行操作,从而进行文件上传。
五、Upload.aspx:文件保存页面。
<%
@ Page Language
=
"
C#
"
%>
<
script runat
=
"
server
"
>

protected
override
void
OnLoad(EventArgs e)
{
if (IsPostBack)
{
string msg = string.Empty;
try
{
if (File1.PostedFile.ContentLength > 0)
{
//在此进行文件合法性判断,然后进行保存.
//
//File1.PostedFile.SaveAs(@"C:\abc.ext");
msg = "文件" + File1.PostedFile.FileName.Replace(@"\", @"\\") + "(" + File1.PostedFile.ContentLength.ToString() + "字节)上传成功.";
}
else
{
msg = ("请选择一个有效的文件.");
}
}
catch
{
msg = "上传文件失败.";
}
this.RegisterClientScriptBlock("setFlash", "<script>setFlash('msg','" + msg + "');<" + "/script>");
}
}
</
script
>

<
html
>
<
head
>
<
title
>
SaveFile
</
title
>
<
script language
=
javascript
>
//
javascript->flash
var flash
=
parent.document.getElementById(
"
FlashUpload
"
);
function setFlash(obj,value)
{
flash.SetVariable(obj, value);
}
</
script
>
</
head
>
<
body bgcolor
=
"
#99ff33
"
>
<
form id
=
"
form1
"
runat
=
"
server
"
>
<
div
>
<
input id
=
"
File1
"
runat
=
"
server
"
type
=
"
file
"
onChange
=
"
setFlash('file',this.value);
"
/></
div
>
</
form
>
</
body
>
</
html
>