Flex通讯系列---Flex与SWF(一)

Flex通讯系列---Flex与SWF

 

一、Flex与Flex(内嵌)通讯。

二、Flex与AS(内嵌)通讯。(Next)

 

这里讲述的是在Flex Application中嵌套一个SWF,然后实现Flex与SWF相互间的通讯。我们需要引入SystemManager接口实现。

下面我们来看一下《Flex 3 参考手册》对SystemManager的描述,你大约就知道怎么回事,使用里面现成的属性和方法就可以实现Flex与SWF的通讯啦。

 

每个应用程序都包含一个 SystemManager。如果应用程序窗口的大小发生更改(您无法在应用程序中更改其大小,只能通过与操作系统窗口或浏览器交互来进行更改),则 SystemManager 会发送一个事件。它是应用程序中所有可显示项目(例如 mx.core.Application 主实例以及所有弹出窗口、工具提示、光标等)的父项。任何以 SystemManager 作为父项的对象都将被视为“顶级”窗口,就连工具提示和光标也是如此。

 

是的,要实现Flex调用嵌套SWF,主要我们在SWF中为Flex打开方便之门就可以了,也就是设计一个public function,难道这还不够简易?下面说一下简单的实现:

1、在Flex Application(如命名为Main.mxml)中通过SwfLoader标签加载Swf文件:

 

2、在Game01.mxml中设计一个public function。如:

 

3、在Main.mxml中调用:

 

我们先来了解两个内容,一个事SwfLoader的content属性,另一个是Application.application。

SwfLoader - content

content 属性  
content:DisplayObject  []
此属性包含表示在 SWFLoader 控件中加载的内容的对象。

 

Application - application

 

很明显,通过这样简单的两句话就可以获取到Flex Application 层次下的public方法。

 

好了,至此已经可以实现了Flex向SWF通讯了。那么SWF怎么可以反过来跟FLEX说话呢?原理是一样的,Flex开放一些function,然后SWF就可以直接调用那些function了。

 

4、如在Main.mxml中加入:

 

5、回去Game01.mxml可以直接通过如下代码调用:

 

接下来我们需要看一下两个属性:

UIComponent:

 

这个层次我是通过Debug对象层层查找出来的,层次不同当然需要改一下了,甚至可以直接跳到几层,直接到最外层,这个自己再去查查,呵呵。

 

 

源代码下载:准备上传

parent 属性
parent:DisplayObjectContainer  []
此组件的父容器或组件。只有 UIComponent 对象应该具有父属性。非 UIComponent 对象应该使用其它属性引用其所属对象。一般而言,非 UIComponent 对象使用 owner 属性引用其所属对象。

 

 

DisplayObject:

root 属性  
root:DisplayObject  []
对于加载的 SWF 文件中的显示对象,root 属性是此 SWF 文件所表示的显示列表树结构部分中的顶级显示对象。对于代表已加载图像文件的位图对象,root 属性就是位图对象本身。对于第一个加载的 SWF 文件的主类的实例,root 属性就是显示对象本身。Stage 对象的 root 属性是 Stage 对象本身。对于任何未添加到显示列表的显示对象,root 属性设置为 null,除非它已添加到符合以下条件的显示对象容器:不在显示列表中,但属于已加载 SWF 文件中顶级显示对象的子级。

application属性
application:Object  []
对顶级应用程序的引用。
通常,Application 对象可能存在层次结构,因为 Application 可以使用 SWFLoader 控件动态加载其它 Application。可通过 UIComponent 的 parentApplication 属性访问 UIComponent 所在的子 Application,并可以在层次结构中向上浏览到顶级 Application。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值