flex中ViewStack的NavigatorContent两个的话,只能监听到第一个里面的事件,不能监听到第二个里面的事件
小女子最近被自定义组件和主程序之间的交互弄得晕头转向的,好不容易能监听到组件里面的事件,但是第二个NavigatorContent的内容却监听不到,妹子求助了。...
小女子最近被自定义组件和主程序之间的交互弄得晕头转向的,好不容易能监听到组件里面的事件,但是第二个NavigatorContent的内容却监听不到,妹子求助了。
展开
1个回答
展开全部
ViewStack有一个属性creationPolicy,你把这个属性设置为all,再试试看。
creationPolicy默认值为auto,这时候ViewStack中的NavigatorContent是延迟创建的。也就是说只有用到第二个NavigatorContent的时候,它才会实例化。如果,没有要显示第二个NavigatorContent的时候,那第二个NavigatorContent就暂时不创建。啥时候用到了,需要显示出来了,第二个NavigatorContent才被实例化。如果没有实例化,就肯定监听不到它里面的事件了。
第一次回答问题,求好评
creationPolicy默认值为auto,这时候ViewStack中的NavigatorContent是延迟创建的。也就是说只有用到第二个NavigatorContent的时候,它才会实例化。如果,没有要显示第二个NavigatorContent的时候,那第二个NavigatorContent就暂时不创建。啥时候用到了,需要显示出来了,第二个NavigatorContent才被实例化。如果没有实例化,就肯定监听不到它里面的事件了。
第一次回答问题,求好评
更多追问追答
追问
但是我显示了第二个NavigatorContent,没监听到。谢谢你的回答。。
追答
你是怎样监听的事件?
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
这个方法前面,你写的是哪个对象?
你是为viewStack对象注册的监听器,还是 为navigatorContent对象注册的监听器?
最保险的方法就是,为派发事件的对象注册监听器。就是说发事件的对象监听自己,然后方法(就是这个参数listener:Function)写上你希望调用的方法。
能贴下你的代码吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询