Flex4 FlexGlobals.topLevelApplication

在Flex 3读取HTML页面的flashvars的变量需要使用Application.application,在Flex 4 SDK里使用FlexGlobals.topLevelApplication代替了Application.application。 

Flex 4已经使用swfobject了: 

Java代码   收藏代码
  1. <script type="text/javascript">   
  2.     var swfVersionStr = "10.0.0";   
  3.     var xiSwfUrlStr = "playerProductInstall.swf";   
  4.     var flashvars = {};   
  5.     flashvars.firstname = "Nick";   
  6.     flashvars.lastname = "Danger";   
  7.     var params = {};   
  8.     params.quality = "high";   
  9.     params.bgcolor = "#ffffff";   
  10.     params.allowscriptaccess = "sameDomain";   
  11.     var attributes = {};   
  12.     attributes.id = "TestProject";   
  13.     attributes.name = "TestProject";   
  14.     attributes.align = "middle";   
  15.     swfobject.embedSWF(   
  16.         "FlashVarTest.swf""flashContent""100%""100%", swfVersionStr,   
  17.         xiSwfUrlStr, flashvars, params, attributes);   
  18.     swfobject.createCSS("#flashContent""display:block;text-align:left;");   
  19. </script>  


读取flashvars中firstname和lastname变量的写法: 

Java代码   收藏代码
  1. var first_name : String = FlexGlobals.topLevelApplication.parameters.firstname;  
  2. var last_name : String = FlexGlobals.topLevelApplication.parameters.lastname;  
在Flash Builder 4里用Flex 4 SDK开发时,如果还使用了Application.application,则会有提示这是Flex 3 SDK的写法。

Flex中获取Application对象的方式

Flex应用程序中的根标签是 (Spark application容器),或 (MX Application容器)。application容器是所有Flex组件的根,就像HTML文档中的<html>标签一样,所有的组件和脚本都将包含在application标签内。通常所有的全局对象或函数,也都会分别作为属性或方法添加至application中。通常代码中要通过首先获取application对象才能获得全局对象或方法。下面是两种在代码中获取application对象的方式,假设当前的应用程序名为MyApplication。

  1. 通过FlexGlobals类:

    FlexGlobals类包含了通用于同一Application Domain内的所有应用程序的变量的类,其包含 的公共属性只有两个,一个是constructor属性,两一个是topLevelApplication属性

    var application:MyApplication = FlexGlobals.topLevelApplication as MyApplication ;
  2. 通过SystemManager的application属性

    SystemManager用来管理Flex应用程序窗口。每个Flex应用只包含一个SystemManager。SystemManager类中的application属性用来获得application对象。UIComponent对象作为FlexUI组件的上层类,通过UIComponent的systemManager属性,就可以获得全局仅有的SystemManager对象。这样在继承自UIComponent的所有UI组件内部都可以很方便的获取application对象,假如,有继承自UIComponent类的名为MyComponent的自定义组件,在其内部可以通过以下代码获得application:

    var sysManager:SystemManager = this.systemManager as SystemManager ;
    
    var application:MyApplication = sysManager.application as MyApplication;

注意,上述两种获取application对象的方式,都需要根据具体应用程序的名称和类型进行合适的类型转换。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值