• Flex调用swf内方法


    原文见:http://blog.csdn.net/genius840215/archive /2010/03/25/5411732.aspx

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

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

    HelloWorld1.mxm

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

    HelloWorld2.as

    1. package {  
    2.     public   class  HellowWorld2{  
    3.         public   function  sayHello(): void {  
    4.             trace("HelloWorld from AS" );  
    5.         }  
    6.     }  
    7. }
    app.mxml
    1. <? xml   version = "1.0"   encoding = "utf-8" ?>   
    2. < mx:Application   xmlns:mx = "http://www.adobe.com/2006/mxml"    layout = "absolute"   >   
    3.     < mx:Script >   
    4.         <!--[CDATA[  
    5.             public function CompleteHandler1(evt:Event):void{  
    6.                 Object(evt.target.content.application).sayHello();   //区别         
    7.             }  
    8.             public function CompleteHandler1(evt:Event):void{  
    9.                 Object(evt.target.content).sayHello();         //区别
    10.             }  
    11.         ]]-->   
    12.     </ mx:Script >   
    13.     < SWFLoader   id = "hw1"   source = "HelloWorld1.swf"   complete = "CompleteHandler1(event)" />   
    14.     < SWFLoader   id = "hw2"   source = "HelloWorld2.swf"   complete = "CompleteHandler2(event)" />   
    15. </ mx:Application >   
     

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

    可以看出第一种情况生成的swf因为是通过mxml生成的,e.target.content其实是一个SystemManager类对象,必须要 通过它的application才能访问swf内部方法,而用as类直接生成的swf通过e.target.content就能直接访问。

  • 相关阅读:
    使用Struts时,JSP中如何取得各个会话中的参数值?
    JUnit —— TestSuite 的使用
    如何修改 Ubuntu 的字符集?
    如何修改 VIM 制表符的空格数?
    最遥远的距离
    二分法求平方根(Python实现)
    Hadoop 学习之路之MapReduce原理
    JDK 1.8源码阅读 TreeMap
    JDK 1.8源码阅读 HashMap
    JDK 1.8源码阅读 HashSet
  • 原文地址:https://www.cnblogs.com/nianshi/p/1734253.html
Copyright © 2020-2023  润新知