快速业务通道

flash事件模型核心:监听器和广播器

作者 佚名技术 来源 服务器技术 浏览 发布时间 2012-07-10
广播器添加个新的监听器。removeListener可以让你除去一个。broadcastMessage是一个产生用来发送到监听器的事件(像onMouseDown)的命令。而_listeners是一个关联到这个广播器的所有监听器的列表。因此, 我们使用ASBroadcaster有下列的方法: ASBroadcaster.initialize(objToBroadcast);
objToBroadcast.addListener(listenObj);
objToBroadcast.removeListener(listenObj);
objToBroadcast.broadcastMessage("event");
objToBroadcast._listeners;
中文参考如下,flash中可以用中文变量名和函数名。
ASBroadcaster.initialize(广播器);
广播器.addListener(监听器);
广播器.removeListener(监听器);
广播器.broadcastMessage("事件");
广播器._listeners;
注意到你没有像使用其它的对象一样,用new关键字为ASBroadcaster对象建立一个实例。初始化函数是一个简单的对象容器, 你可以把它看成一个独立的函数。只有当一个对象被初始化为另一个对象的事件监听器的时候,ASBroadcaster发出的事件才会生效。
拿Mouse对象来说吧, 它会在Flash中用ASBroadcaster自动初始化。它具有addListener和removeListener方法让你可以自行增加和删除你的监听器,并且当你按下、移动或者释放你的鼠标的时候,broadcastMessage方法也会自动执行。所以如果你按下你的鼠标,Flash会在内部执行下面的代码: Mouse.broadcastMessage("onMouseDown");
所有的Mouse对象的监听器, 比如movieclip(在flash中自动定义为Mouse对象的监听器),就会识别onMouseDown,并且运行关联的动作。 例2.
现在我们对ASBroadcaster有了一个简单的了解,我们可以用broadcaster对象自定义自己的广播器和响应它的监听器。这个例子还会沿用例一,那是属于你的监听器。它可以识别和监听事件的发生。 在这个例子里,我将会带你回到古老的两千多年前, 那儿有一个统治别人的国王和一些被驱使的奴仆。我们在这里所做的就是产生几个对象(一个是国王和一个从属于他的奴仆),然后用ASBroadcaster对控制他们之间的交互作用。国王, 作为国王,它将下达命令,而我们的奴仆将监听命令,当命令到达的时候就会执行一个特定的动作。所以我们必须建立这些对象,分别给这些对象定义属于它们的特点和能力。拿国王为例,当我们定义它为驱使者(用ASBroadcast.initialize)。这时我们的奴仆必须被驱使(用addListener),它成为国王的一个服务者并且被用命令指派它的工作。这里是代码: King = {}; // 产生国王
ASBroadcaster.initialize(King); // 初始化国王为驱使者 subject = {}; // 产生奴仆
King.addListener(subject); //把它加到国王的被驱使者 //告诉我们的奴仆,他应该做的事
subject.onKingScream = function(){
trace("带葡萄过来!");
} // 这里我们让国王高吼两次, 用来加强语气,:)
King.broadcastMessage("onKingScream");
King.broadcastMessage("onKingScream");
关键词:

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号