flex 组件间事件的传递
Application下有两个组件A和B,A组件下有一个click事件,并对应有一个函数处理该事件。B组件有两个状态,我的目的是通过A的事件出发B状态的改变。要求写出实现...
Application下有两个组件A和B,A组件下有一个click事件,并对应有一个函数处理该事件。B组件有两个状态,我的目的是通过A的事件出发B状态的改变。要求写出实现方法,最好用代码举例的方式,在这里先谢谢大家了,回答的好会酌情追加分的,谢谢!
这个函数是在A中么?改变B的状态 如果用currentState='',但是是b的状态应该用什么格式啊?
请问如何实现的,请教? 展开
这个函数是在A中么?改变B的状态 如果用currentState='',但是是b的状态应该用什么格式啊?
请问如何实现的,请教? 展开
2个回答
展开全部
哎,应该慢慢用qop思想。
如果我是楼主会把B状态的改变写成一个public 的方法,把a组件下的click事件也写成方法,把鼠标侦听全放进application,或者单独拿一类。
回到话题,你的事情可以用2次事件发送解决。新开一个自定义事件类:
1 package {
2 import flash.events.Event;
3 public class myEvent extends Event {
4 public static const CLIPA_CLICK:String="clipa_click";
public static const CLIPA_CLICKTOB:String="clipa_clicktob";
6 public function myEvent() {
7 super(CLIPA_CLICK);
8 }
15 }
16 }
a,application,b中都要导入myEvent
a类中click回调函数中加 this.dispatchEvent(new myEvent(CLIPA_CLICK));
在application类的构造函数或构造函数引用的方法中加
a.addEventListener(myEvent.CLIPA_CLICK,sentToB);
然后加个方法,注意b要是最上面声明的,不能在函数内声明
private function sentToB(e:myEvent):void {
b.dispatchEvent(new myEvent(CLIPA_CLICKTOB));
}
在b类中加 this.addEventListener(myEvent.CLIPA_CLICKTOB,callBackFunc);
---其中 callBackFunc就是你要执行的状态改变了。
楼主要尽快适应qop思想。
如果我是楼主会把B状态的改变写成一个public 的方法,把a组件下的click事件也写成方法,把鼠标侦听全放进application,或者单独拿一类。
回到话题,你的事情可以用2次事件发送解决。新开一个自定义事件类:
1 package {
2 import flash.events.Event;
3 public class myEvent extends Event {
4 public static const CLIPA_CLICK:String="clipa_click";
public static const CLIPA_CLICKTOB:String="clipa_clicktob";
6 public function myEvent() {
7 super(CLIPA_CLICK);
8 }
15 }
16 }
a,application,b中都要导入myEvent
a类中click回调函数中加 this.dispatchEvent(new myEvent(CLIPA_CLICK));
在application类的构造函数或构造函数引用的方法中加
a.addEventListener(myEvent.CLIPA_CLICK,sentToB);
然后加个方法,注意b要是最上面声明的,不能在函数内声明
private function sentToB(e:myEvent):void {
b.dispatchEvent(new myEvent(CLIPA_CLICKTOB));
}
在b类中加 this.addEventListener(myEvent.CLIPA_CLICKTOB,callBackFunc);
---其中 callBackFunc就是你要执行的状态改变了。
楼主要尽快适应qop思想。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询