Flex调用swf内方法

Flex调用swf内方法
2013-04-13

一般我们生成的swf有3种,一种是Flex mxml主应用编译得到,第2种类是用Flex SDK编译as类得到,还有一个就是fla在Flash CS3内运行生成。

因为第3种的调用方法同第2种,这里就说明前2种swf在Flex项目内的应用。

 

HelloWorld1.mxml

 

    <?xml version="1.0" encoding="utf-8"?>  
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"  layout="absolute" >  
        <mx:Script>  
            <!--[CDATA[  
                public function sayHello():void{  
                    trace("HelloWorld from mxml");  
                }  
            ]]-->  
        </mx:Script>  
    </mx:Application>  

 

HelloWorld2.as

    package{  
        public class HellowWorld2{  
            public function sayHello():void{  
                trace("HelloWorld from AS");  
            }  
        }  
    }  

 

 

app.mxml

    <?xml version="1.0" encoding="utf-8"?>  
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"  layout="absolute" >  
        <mx:Script>  
            <!--[CDATA[  
                public function CompleteHandler1(evt:Event):void{  
                    Object(evt.target.content.application).sayHello();            
                }  
                public function CompleteHandler1(evt:Event):void{  
                    Object(evt.target.content).sayHello();  
                }  
            ]]-->  
        </mx:Script>  
        <SWFLoader id="hw1" source="HelloWorld1.swf" complete="CompleteHandler1(event)"/>  
        <SWFLoader id="hw2" source="HelloWorld2.swf" complete="CompleteHandler2(event)"/>  
    </mx:Application>  

 

 

HelloWorld1.mxml和HelloWorld2.as分别用Flex SDK编译成swf,然后在app.mxml内调试。

可以看出第一种情况生成的swf因为是通过mxml生成的,e.target.content其实是一个SystemManager类对象,必须要 通过它的application才能访问swf内部方法,而用as类直接生成的swf通过e.target.content就能直接访问。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值