js调用as中的方法示例

本文档展示了如何在JavaScript中调用ActionScript中的方法,包括网页中的Flash嵌入代码,JavaScript交互函数以及ActionScript中定义的外部接口函数。通过示例详细说明了交互过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

工作遇到js调用as的情况,所以研究半天,终于解决,贴出以备后用

 

1.以下是网页的flash代码(注意在object中定义好id)
------------------------------------------------------------------------------
    <div class="xinxi">
       <script type="text/javascript">
   AC_FL_RunContent( 'codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0','width','244','height','272','src','images/ziliao','quality','high','pluginspage','http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash','wmode','transparent','movie','images/ziliao' ,'id','ziliao'); //end AC code
    </script>
   <noscript><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0" width="244" height="272" id="ziliao">
          <param name="movie" value="images/ziliao.swf" />
          <param name="quality" value="high" />
          <param name="wmode" value="transparent" />
          <embed src="images/ziliao.swf" width="244" height="272" quality="high" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" wmode="transparent"></embed>
        </object>
      </noscript>
    </div>

2.js中调用flash函数的函数
//与flash交互
function callAS(data)
{
   document.getElementById("ziliao").displayRoleAttr(data); //displayRoleAttr为flash中的函数名
   //thisMovie("ftest").displayRoleAttr("playboy");
}

//flash浏览器处理
function thisMovie(movieName) {
   
    var app=navigator.appName;
   var verStr=navigator.appVersion;
   if (app.indexOf('Netscape') != -1) {
    return window[movieName];
   }
   else if (app.indexOf('Microsoft') != -1) {
    
     return document[movieName];
   }
 }

3.flash中的函数

package {
 import flash.display.Sprite;
 import flash.display.MovieClip;
 import flash.text.TextField;
 import flash.events.Event;
 import flash.net.URLRequest;
 import flash.net.URLLoader;
 import flash.external.ExternalInterface;
 import flash.system.Security;
 public class main extends Sprite {

  public function main() {

   try {
    Security.allowDomain("*");
    //设置js中调用as中方法的接口
    ExternalInterface.addCallback("displayRoleAttr", displayRoleAttr);
   } catch (error:SecurityError) {
    rolename_txt.text="SecurityError";
   }

   function displayRoleAttr(jsonObj:Object) { //这里传递的是json数据的对象
    
    rolename_txt.text=jsonObj.rolename;
    grade_txt.text=jsonObj.grade;
    
    //以下是动态显示血条长度
    exp_mc.scaleX = jsonObj.expCurrVal/jsonObj.expCumVal ;//EXP
    hp_mc.scaleX = (jsonObj.grade+5) * Math.sqrt(jsonObj.grade+20) * 3.5 + jsonObj.strVal*2;//暂没加上物品增加值
    mp_mc.scaleX = (jsonObj.grade+4) * 3 + (jsonObj.intVal*4) ; //暂没加上物品增加值


   }
  }
 }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值