喜悦国际村 
» 游客:  注册 | 登录 | 搜索 | 统计 | 喜悦证交所 | 帮助

RSS 订阅当前论坛  

[北京]代朋友公司招聘PHP高级程序员多名

上一主题 下一主题
     
标题: [原创] 关于flash和php之间的通信  
 
ydl0025
注册会员
Rank: 2


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_lvoadVars = 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&";
?>
现就这么多,以后再整理




没有什么事是做不到的,关键是你有没有去做
2007-12-29 01:25 PM#1
查看资料  访问主页  Blog  发短消息  QQ  顶部
 
sunceenjoy
中级会员
Rank: 3Rank: 3
初级会员


UID 68584
精华 0
积分 262
帖子 249
金钱 262 喜悦币
威望 0
人脉 0
阅读权限 30
注册 2006-2-13
状态 离线
[推荐阅读] VPS合租服务器,独立的IP,独立的3389操作方便简单,价格便宜
nice
!!
2008-1-4 02:07 PM#2
查看资料  Blog  发短消息  顶部
 
psdshow
金牌会员
Rank: 6Rank: 6
论坛元老



UID 30908
精华 0
积分 1767
帖子 1369
金钱 1767 喜悦币
威望 0
人脉 0
阅读权限 70
注册 2004-9-6
来自 永州-廣州
状态 离线
[推荐阅读] 招聘社区类网站php程序员(地点:杭州)
用amfphp吧



以下AD由PHPX赞助:
广州梦莎五金饰品厂 东莞恒隆五金饰品厂 承接php私活
2008-1-4 05:20 PM#3
查看资料  访问主页  Blog  发短消息  QQ  顶部
 
sanders_yao
版主
Rank: 7Rank: 7Rank: 7
or2 =333


UID 30286
精华 0
积分 2536
帖子 4707
金钱 2533 喜悦币
威望 0
人脉 3
阅读权限 100
注册 2004-7-23
来自 北京 菜户营
状态 离线
[推荐阅读] 成都依诺信息技术有限公司 急招PHP程序员
用XML和XMLSock对象也可以



最近写的一些代码都会在以下地址发布,有兴趣的来批:
http://www.phpx.com/happy/thread-131368-1-1.html
2008-1-4 06:28 PM#4
查看资料  Blog  发短消息  顶部
     


  可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题 | 开通个人空间  


 




Powered by Discuz! 6.1.0  © 2001-2010 Comsenz Inc.
Processed in 0.060375 second(s), 6 queries

(冀ICP备05009913号) 管理员:sadly 邮箱/MSN: sadly@phpx.com QQ:824008(长隐) 清除 Cookies - - Archiver - WAP