ydl0025
注册会员

UID 105120
精华
0
积分 50
帖子 79
金钱 50 喜悦币
威望 0
人脉 0
阅读权限 20
注册 2007-12-29 来自 北京
状态 离线
|
关于flash和php之间的通信
1.get_url getURL(url:String, [window:String, [method:String]]) : Void
将来自特定 URL 的文档加载到窗口中,或将变量传递到位于所定义的 URL 的另一个应用程序,
window:String [可选] - 指定应将文档加载到其中的窗口或 HTML 帧,(_self 指定当前窗口中的当前帧。
_blank 指定一个新窗口。 _parent 指定当前帧的父级。 _top 指定当前窗口中的顶级帧。 )
method:String [可选] - 用于发送变量的 GET 或 POST 方法.
示例:
myBtn_btn.onRelease = function(){
getURL("mailto:you@somedomain.com");
};
2.loadVariables loadVariables(url:String, target:Object, [method:String]) : Void
从外部文件(例如文本文件,或由 ColdFusion、CGI 脚本、Active Server Page (ASP)、PHP 或 Perl 脚本生成的文本)中读取数据,
并设置目标影片剪辑中变量的值。此动作还可用于使用新值更新活动 SWF 文件中的变量。
url:String - 变量所处位置的绝对或相对 URL。如果发出此调用的 SWF 文件正在 Web 浏览器上运行,则 url 必须与 SWF 文件位于同一个域中
target:Object - 指向接收所加载变量的影片剪辑的目标路径。
method:String [可选] - 指定用于发送变量的 HTTP 方法。该参数必须是字符串 GET 或 POST
示例:
loadVariables("params.txt", target_mc);
3.SetVariable import flash.external.*;
(参考网址:http://www.52ria.com/ShowPost.as ... D=8&ThreadID=23)
ExternalInterface.call("fns","val")
他就可以帮我们变相调用AS中的方法。大概思路如下:AS中设置一个状态变量,并使用Object的watch方法对其监视,JS通过SetVariable来修改这个 状态 变量,一旦侦测到了变量的改变,那就可以根据不同的状态值来选择执行AS中的相应函数了
fns:function - 调用html页面js的方法名
val:void - 传递给html页面js的变量值
示例:as调用js
Flash中代码:
//导入包
import flash.external.*;
get_btn.onRelease = function(){
//调用页面中的JS函数
var temp_str = String(ExternalInterface.call("say", "Hello,World"));
result_txt.text = temp_str;
}
Html中代码:function say(txt){
return txt;
}
js调用as
FLASH中代码://导入包
import flash.external.*;
//提供JS访问的函数名
var _method:String = "say";
//指定本地函数中this变量的作用域,可设置为null留空
var e_area:Object = null;
//AS内部函数名
var method:Function = say;
//将函数注册到容器列表
var wasSuccessful:Boolean = ExternalInterface.addCallback(_method, e_area, method);
//查看注册是否成功
if(wasSuccessful){
result_txt.text = "函数注册成功";
}
//本地的函数
function say(txt:String) {
result_txt.text = txt;
}
Html中代码:
<div>
<form>
<input type="button" _disibledevent="callExternalInterface()" value="JS调用AS方法" />
</form>
<script>
function callExternalInterface() {
thisMovie("demo").say("Hello,World");
}
//浏览器兼容访问DOM
function thisMovie(movieName) {
if (navigator.appName.indexOf("Microsoft") != -1) {
return window[movieName]
}
else {
return document[movieName]
}
}
</script>
</div>
4.fscommand(cmd_string, arg_string) 若要使用 fscommand() 向 Web 浏览器中的脚本撰写语言(例如 JavaScript)发送消息,您可以在 command 和 arguments 参数中传递任意两个参数。这些参数可以是字符串或表达式,它们将在用来"捕获"或处理 fscommand() 函数的 JavaScript 函数中使用
(参考网址:http://3800cc.com/Article/mtdh/F ... /Article_20987.html)
示例:as里的代码
btn.onRelease = function() {
fscommand("popup", "http://www.beidu.com/");
};
js里的代码
//m100du_player为html页面swf的id值
<SCRIPT LANGUAGE="javascript">
function m100du_player_DOFSCommand(command,args)
{
alert(command);//popup
command 这个值就是flash里通过fscommand("popup","http://...")方法传递过来的
}
</SCRIPT>
//这段代码不可少
<SCRIPT LANGUAGE="VBScript">
Sub m100du_player_FSCommand(ByVal command, ByVal args)
call m100du_player_DoFSCommand(command, args)
end sub
</SCRIPT>
5. LoadVars 使用 LoadVars 类将内容加载到 SWF 文件中,此方法将加载来自同一服务器上的外部文件中的文本或变量,甚至来自不同服务器上的内容
示例:向服务器取得变量
as代码:var result_lv oadVars = new LoadVars();//示例对象
//点击按钮执行
button.onRelease = function() {
//从fql_star.php(可以使其他格式文件,如txt,asp等)通过post方式活的变量,保存到对象result_lv中
result_lv.sendAndLoad("fql_star.php", result_lv, " OST");
};
当 LoadVars.load() 或 LoadVars.sendAndLoad() 操作已结束时调用。如果该操作成功,将使用该操作所下载的变量填充 my_lv,而这些变量将在 调用此处理函数时变为可用。
result_lv.onLoad = function(success:Boolean) {
if (success) {
result_ta1.text = val1;
result_ta2.text = val2;
/*自定义代码*/
} else {
result_ta.text = "下载变量值失败!";
/*自定义代码*/
}
};
服务器端代码(这里是:fql_star.php)
<?php
echo "val1=变量值&val2=变量值2&";
?>
现就这么多,以后再整理
|  没有什么事是做不到的,关键是你有没有去做 |
|