`
whuthj
  • 浏览: 70283 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

AS与JS通讯

阅读更多

1.Fscommand

 在网页应用上,FS Command有两大功能。  

1)能使Flash向脚本语言发送命令。可以是调用脚本语言中的一段函数或传递变量给脚本语言等。  

2)能使脚本语言(js,vbs)向Flash发送命令。可以是给Flash中定义变量或是直接控制Flash动画的时间线上的跳转或给Flash中定义实体的属性等。  

看到了么?它是这样实现的:  

1)用Flash作一个简单的按钮,将按钮的Action设为:  

On(Release)  {

FSCommand("alert","Hello,This is FS Command speaking")  

}

2)将按钮输出为swf,用Dreamweaver插入网页,并起ID名为"button"  

3)在网页<head></head>之间加入:  

<script language=javascript>  

function button_DoFSCommand(command,args)  

{if(command == "alert"){  

alert("Now look at this:"+args);}  

}  

</script>  

<SCRIPT LANGUAGE=VBScript>  

Sub button_FSCommand(ByVal command, ByVal args)  

call button_DoFSCommand(command, args)  

end sub  

</SCRIPT>  

 

下面对(3)点的语法做一些解释:"function ID_DoFSCommand(command,args)"是引用FS Command的一个固定格式,ID就是swf插入网页后起的ID名字。"if(command="")句的后面要填的就是FlashActioncommand栏里填写的内容,"args"是个变量,上例中args代表的就是Argument里的内容。"alert""JS"函数,作用是输出信息。看到JS语句后面的一段VBS代码了么?这段代码可是非常重要噢,如果你的浏览器是IE的话,这段代码是必不可少的。  

 

3FS CommandFlash Methods  

Flash Methods指能运行在脚本中并能于Flash沟通的一组特定函数。  

IEFlash Methods的格式为:ID.FlashMethods  

我们还是用学习例子的方法来了解Flash Methods的功能和用法吧:  

请点击按钮!看到效果了么?它是这样实现的:  

1)在Flash中画一个文本框,定义其实体名为get,并设置文本的属性为Multiline(允许换行),Word wrap(边界换行)。  

2)制作按钮提交清除,分别设置action为:  

On(Release)  {

FSCommand("post","")  

On(Release)  {

FSCommand("clear","")  

}

3)用Dreamweaver将导出的swf插入网页,起ID名为buttonn。  

4)网页代码中加入:  

<script language=javascript>  

function buttonn_DoFSCommand(command,args)  

{if(command == "post")  

buttonn.SetVariable("_root.get","哈哈!神奇吧?这是JavaScript说的话!~0~")  

else if(command == "clear")  

buttonn.SetVariable("_root.get","")  

}  

</script>  

<SCRIPT LANGUAGE=VBScript>  

Sub buttonn_FSCommand(ByVal command, ByVal args)  

call buttonn_DoFSCommand(command, args)  

end sub  

</SCRIPT> 

2.ExternalInterface 

  ExternalInterface 类是外部 API,在 ActionScript 和 Flash Player 的容器之间实现直接通讯的应用程序编程接口,例如,含有 JavaScript 的 HTML 页。 推荐对所有 JavaScript 与 ActionScript 之间的通信使用 ExternalInterface。 在 HTML 页中使用 JavaScript,可以调用 Flash Player 中的 ActionScript 函数。 ActionScript 函数可以返回一个值,JavaScript 会立即接收它作为该调用的返回值。此功能替代了较旧的 fscommand() 方法。

 

  命名空间:import flash.external.ExternalInterface;   

  两个重要方法:

 addCallback(functionName:String, closure:Function):void 

 call(functionName:String, ... arguments)  

 用法如下:

  * html文件里加入 

   * <script type="text/javascript" 

   * function ch(value) 

   * { 

   *    alert("哈哈"); 

   * } 

   * </script> 

   */    

   ExternalInterface.call("ch","ActionScript 3.0 Cookbook");  

 

 

   * html文件里加入  

   * <script type="text/javascript"  

   * function oc()  

   * {  

   *    alert(document.getElementById("ExternalInterfaceTest").cc("hello"));  

   * }  

   * </script>  

   *   

   * <input type="button" value="测试" onclick="oc()"/>  

   */    

   ExternalInterface.addCallback("cc",cc);   

   function cc():String {

       return "Hello";

   }

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics