打印

[AS3] 求助 跨类事件侦听问题 比较棘手唉....

这个问题一直没有得到结果

类1    类2

类1中的事件  怎么才能从类2中侦听的到啊?
...
类1:
parent.dispatch
类2
parent.addEventListener


parent 要在 addChild之后才能用  直接写在构造函数会报错


寒  一点都不辣手 这个是OOP基本。。。

[ 本帖最后由 kita32 于 2007-8-27 12:51 编辑 ]
做人还是低调点好。。。
您说的“类1中的事件”应该不是指类1发出的事件吧。

class 类1{
  var o2:类2;
  o2.dispatchEvent(new Event("e"));
}
class 类2{
  addEventListener("e",fun);
}
这样算不算?
学习
引用:
原帖由 youxiazhu 于 2007-8-27 12:50 发表
您说的“类1中的事件”应该不是指类1发出的事件吧。

class 类1{
  var o2:类2;
  o2.dispatchEvent(new Event("e"));
}
class 类2{
  addEventListener("e",fun);
}
这样算不算?
楼上的是错的

楼主的是 类1 和 类2 是并列的

[ 本帖最后由 kita32 于 2007-8-27 12:56 编辑 ]
做人还是低调点好。。。

TOP

还在为头像烦恼?还在为不能关注好友动态烦忧?快来蓝色理想家园吧!
哦,就是说事件对象是他们共同的容器对象,只不过两个类分别扮演了收发的两个角色
学习

TOP

但是这样是不是两个类都要写一遍侦听啊  类1侦听  然后dispatchEvent  发送"ok"    类2侦听到'ok" 然后在动作  是这样么?

TOP

只是两个类都要去引用继承自EventDispatch的中间介质
A类中写 中间介质.addEventListener
B类中写 中间介质.dispatchEvent
我要威望....>

TOP

类2设为主类,
类1和类2写在同一个package里,
类1继承EventDispatcher并利用dipatchEvent()方法发事件
类2里的构造里实例化类1并加侦听

TOP

第三方类
复制内容到剪贴板
代码:
//DT.as
package {
    import flash.events.EventDispatcher;
    public class DT {
        private static  var _dispatcher:EventDispatcher;
        public static function get dispatcher(){
            _dispatcher=_dispatcher==null?new EventDispatcher:_dispatcher
            return _dispatcher
            }
    }
}
//A.as
package {
    import flash.events.*
    public class A {
        public function A() {
            var dispatcher:EventDispatcher=DT.dispatcher;
            dispatcher.addEventListener("trace",onTrace);
        }
        private function onTrace(evt:Event) {
            trace("onTrace");
        }
    }
}
//B.as
package {
    public class B {
        import flash.events.*
        public function B() {
            var dispatcher:EventDispatcher=DT.dispatcher;
            dispatcher.dispatchEvent(new Event("trace"));
        }
    }
}
//fla:
new A()
new B()
我要威望....>

TOP

冒泡 可能会帮到你

TOP

我这水平还看不懂。。。

TOP

自己写过一个用频道通信的,也许对楼主有帮助
(刚才发现没弄对,又传了一遍)

[ 本帖最后由 xbstu2006 于 2007-9-3 00:46 编辑 ]
附件: 您所在的用户组无法下载或查看附件,您需要注册/登录后才能查看!

TOP

LZ说的是同一个包还是2个文件的as啊
xhtml/css/Ajax/AS/php/mysql你才是程序员,你家全是程序员 -__-

TOP

引用:
原帖由 jevin 于 2007-9-3 12:44 发表
LZ说的是同一个包还是2个文件的as啊
我说的是同个包内两个平级的类

TOP

用爷的超级类的静态事件发送器

package Charlotte {
       import flash.events.EventDispatcher;
       public final class Communications {
              public static const StaticEventDispatcher:EventDispatcher = new EventDispatcher();
              public static var data:Object = new Object();
       }
}
做人还是低调点好。。。

TOP