flex调用as2的swf

由于avm版本的问题,flex3无法直接调用flash做的swf文件,弄了一天,最后终于想到了一个办法,将LocalConnect和flex调用as3两种方式攒在了一起,算是暂时把这个问题解决了!

 

存起来,留着以后修改

 

 

 

第一步:用flash做一个as2的文件

 

我在里面添加了一个按钮

在第一帧写下面的代码

mybtn.onRelease=function()
 {
  var caller:LocalConnection=new LocalConnection();
  caller.send("as_server","testAs3",this._name);//this._name为第二步中创建的swf里testAs3的参数
 }

 

第二步:创建一个flash做的as3的文件,包含一个名为lab的label

 

添加下面的代码

 

var server:LocalConnection = new LocalConnection();
server.connect("as_server");
server.client = this;
function testAs3(msg:String):void{
 lab.text=msg;
 app.appshowtext(lab.text);
}
var app:Object;
function swfshowtext(str:String):void{
 lab.text=str;
}
function setApp(ap:Object):void{
 this.app=ap;
}
function testAs31(msg:String,str:String):void{
 lab.text=msg+str;
 app.appshowtext(lab.text);
}

第三步:写flex代码

 

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<![CDATA[
  private function onSwfLoaded(event:Event):void{
   Object(myloader.content).setApp(this);
  }
  //准备给swf调用的方法
  public function appshowtext(str:String):void{
   textinput.text=str;
  }

 ]]>
</mx:Script>
<mx:SWFLoader id="myloade" source="../daohang.swf" autoLoad="true" scaleContent="false"/>
<mx:TextInput id="textinput"/>
<mx:SWFLoader id="myloader" source="../demo1.swf" creationComplete="onSwfLoaded(event)" autoLoad="true" scaleContent="false" width="370" height="168"/>
<mx:Button label="send to local.swf" click="Object(myloader.content).swfshowtext(textinput.text);"/>
</mx:Application>

 

运行一下,ok!!!

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值