作者cjcat2266 (CJ Cat)
看板Flash
标题Re: [问题] PureMVC小问题
时间Wed Jun 2 22:02:54 2010
※ 引述《MagicYan (【卖几客.羊】)》之铭言:
: override public function listNotificationInterests():Array
: {
: return [StageMediator.KEYDOWN];
: }
: 底下再写处理通知的handleNotification(n:Inotification)
: 现在问题来了,一旦这样写了之後,不就写死了,将来想在执行期
: 新增或移除感兴趣的通知,或是处理通知的function不都变得很不
: 灵活吗?这种状况有解决方案吗?
如果是每次呼叫notifyObservers()的时候
都会去呼叫listNotificationInterests()的话
就没有这个问题
因为该Array可以是动态更新的
不过现实总是残酷的
我看了一下View.as
在registerMediator()的时候
就已经把listNotificationInterests()的回传值给注册起来了
而不是每次呼叫notifyObservers()的时候都更新一次
这样的话并不是没有办法动态更新
每次你listNotificationInterests()回传的Array有变动的时候
就用removeMediator()和registerMediator()重新把Mediator注册一次
这样就达到你想要的效果
虽然有点麻烦
但是至少是可行的 :)
--
CJ Cat = Croa'J Cat = Cockroach Cat = 西街凯特 = 蜚蠊猫 = 蟑螂猫
Blog
http://cjcat.blogspot.com
Gallery
http://cjcat2266.deviantart.com
ptt2 Board CJWorkshop - 阿多比闪光(Adobe Flash)研讨区
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.45.164.207
1F:推 MagicYan:这问题不晓得下个版本会不会改善...不然自己动手改 xD 06/02 22:54