返回信息流☆─────────────────────────────────────☆
wdsuus (newbie) 于 (Fri Apr 18 11:15:10 2008) 提到:
问个技术问题,Flex里面能调用swf文件,如何在这种调用环境下让swf文件调用修改Flex里的变量和函数?就是子调用主的过程,谢谢!
☆─────────────────────────────────────☆
wdsuus (newbie) 于 (Fri Apr 18 12:56:36 2008) 提到:
最好是直接交互,不用侧面方法和Localconnect的
☆─────────────────────────────────────☆
dickfu (潇湘天下|小付寨主) 于 (Fri Apr 18 13:22:11 2008) 提到:
我记得好像每个组件都有一个parent属性..appliction的parent属性默认为null
不知道这里是不是有办法改一下
【 在 wdsuus (newbie) 的大作中提到: 】
: 最好是直接交互,不用侧面方法和Localconnect的
☆─────────────────────────────────────☆
wdsuus (newbie) 于 (Fri Apr 18 14:40:44 2008) 提到:
【 在 dickfu 的大作中提到: 】
: 我记得好像每个组件都有一个parent属性..appliction的parent属性默认为null
: 不知道这里是不是有办法改一下
如果直接调用_parent的话会报错说没有parent,_root也不行……
试了一下ExternalInterface也不行
☆─────────────────────────────────────☆
dickfu (潇湘天下|小付寨主) 于 (Fri Apr 18 14:50:33 2008) 提到:
默认是null啊....但是不知道怎么修改...
【 在 wdsuus (newbie) 的大作中提到: 】
: 如果直接调用_parent的话会报错说没有parent,_root也不行……
: 试了一下ExternalInterface也不行
☆─────────────────────────────────────☆
wdsuus (newbie) 于 (Fri Apr 18 15:09:10 2008) 提到:
查了下手册,那个属性好像是只读的……
【 在 dickfu 的大作中提到: 】
: 默认是null啊....但是不知道怎么修改...
☆─────────────────────────────────────☆
dickfu (潇湘天下|小付寨主) 于 (Fri Apr 18 15:15:02 2008) 提到:
不知道这段有没有用
Flex2.01之后提供了modules模块化开发包,开发者可以将程序的某些模块编译成swf,在需要的地方load进去,实现模块化的开发。
现在问题来了,每个module会被编译成swf,在一个Application中,module之间该如何通信交互呢。
通常来说,在一个swf中,组件间的交互通信可以直接addEventListener 和dispatchEvent来完成事件的传递。当然这样标准的做法也适用于module。理解在AS 3.0中事件遵循向上传递的原则,那么下面的工作就好做了。
例如,在一个Application中分别由ModuleLoaderA和ModuleLoaderB加载了两个module,分别为moduleA和moduleB,其中A需要向B传递数据。事件的传递就应该是这样的:moduleA –> ModuleLoaderA –> Application –> ModuleLoaderB –> moduleB。
1. 首先当然先要定义一个事件,那么在moduleA里应该由this.parent.parent来dispatchEvent(事件),this.parent即加载moduleA的ModuleLoaderA,那么this.parent.parent即Application;
2. 在Application中,由ModuleLoaderA来addEventListener(事件),即侦听了由moduleA传上来的事件,侦听到之后再由ModuleLoaderB负责dispatchEvent(事件)。
3. 在moduleB里,this.parent.parent.addEventListener(事件),这样就侦听了由ModuleLoaderB传递的事件。
其实在module里,使用this.systemManager.addEventListener/dispatchEvent也可以完成事件的传递,但是如果一个module里用this.systemManager,而另一个module里使用this.parent.parent却不能传递事件,systemManager并不等于application,systemManager.document才是application,也就是说用systemManager的话必须两者都用,用parent的话也可以使用systemManager.document。不明白的朋友可以仔细阅读Flex的帮助文档。
【 在 wdsuus (newbie) 的大作中提到: 】
: 查了下手册,那个属性好像是只读的……
☆─────────────────────────────────────☆
wdsuus (newbie) 于 (Fri Apr 18 15:26:48 2008) 提到:
我先研究一下,多谢小付了!
【 在 dickfu 的大作中提到: 】
: 不知道这段有没有用
: Flex2.01之后提供了modules模块化开发包,开发者可以将程序的某些模块编译成swf,在需要的地方load进去,实现模块化的开发。
: 现在问题来了,每个module会被编译成swf,在一个Application中,module之间该如何通信交互呢。
: ...................
这是一条镜像帖。来源:北邮人论坛 / flash / #34052同步于 2008/4/28
Flash机器人发帖
[合集] [求助]有学Flex的吗?
xw2423
2008/4/28镜像同步0 回复
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。