微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Flash, JavaScript, PHP之间的交互

1. FLASH<=>JavaScript

一、在网页中通过JavaScript调用Flash里的ActionScript:

可以通过ExternalInterface的addCallback方法,在Flash里注册一个可以供网页上的JavaScript或ActiveX调用方法,具体代码如下:

import flash.external.*;
var methodName:String = "PlayBB";
var instance:Object = null;
var method:Function = playB;

在JavaScript中调用时,需要为Flash所在的Object标签设置一个ID,并且设置allowScriptAccess属性,示例代码如下:

<object id="topFlash" name="topFlash" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,19,0" width="686" height="101">
      <param name="movie" value="_top.swf" />
      <param name="quality" value="high" />
      <param name="allowScriptAccess" value="always" />
      <embed allowScriptAccess="always" src="_top.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="686" height="101"></embed>
</object>

网页中的JavaScript具体的调用示例:

function thisMovie(movieName) {
      if (navigator.appName.indexOf("Microsoft") != -1) {
             return window[movieName]
      }
      else {
             return document[movieName]
      }
}
thisMovie.PlayBB();

二、在Flash的ActionScript中调用网页里的JavaScript:

直接使用ExternalInterface的Call方法就可以了,示例代码如下:

程序代码

import flash.external.*;
var obj:Object = ExternalInterface.Call("JavaScript方法","参数");

参数可以是任何As中的类型,在调用时Flash会自动封装,多参数使用,分隔。


Embedding Adobe Flash Player content using SWFObject 2

swfobject.embedSWF(swfUrlStr,replaceElemIdStr,widthStr,heightStr,swfVersionStr,xiSwfUrlStr,flashvarsObj,parObj,attObj,callbackFn)

Within the html page,a Flash movie is just an "object," much like a window,a form elements,or an image.  (In Internet Exporer (IE),a Flash object as actually an COM object or an ActiveX object.)  Read more about it here.  The Flash movie object can be referenced several ways depending to the browsers. 

window.document[movieName]         // (on Mozilla browsers such as netscape)
window[movieName]                     // (on Internet Explorer as of ver 5)
document.embeds[movieName]      // Mozilla netscape,Firefox or Opera

function getFlash()
{
//通过navigator可以取得OS的信息,详见http://www.hajimeteno.ne.jp/dhtml/refer/navigator.html
    if(navigator.appName.indexOf("Microsoft") != -1) {
        return window["canvas"];
    } else {
        return document["canvas"];
    }
}

2. FLASH<=>PHP

     amfPHP

3. JavaScript<=>PHP

1)JavaScript=>PHP

通过jQuery
$.ajax({
          url: url + 'MbgaInvite.PHP?mode=getBonusList&opensocial_viewer_id=' + (viewer_id.split(":")[1]),data: {},type: 'GET',dataType: 'jsonp',jsonp: 'callback',success: getBonusListCallback,error: errorCallback
    });

getBonusList是url + 'MbgaInvite.PHP中定义的函数,数据opensocial_viewer_id被保存在$_GET数组中。getBonusListCallback是成功调用后的callback函数

type可以是GET或POST。

2)PHP=>JavaScript

一般不能直接调用,都是由JavaScript调用PHP,然后PHP把结果返回给JavaScript。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐