什么是Flash AS3中的dispatchEvent?
大家好我想知道什么是dispatchEvent在AS3。 我没有得到任何想法,而谷歌搜索它。 :( 所以,请帮我什么是Flash AS3中的dispatchEvent?
编辑1:
public static const SET_VOLUME:String = "setVolume";
private function onclick(evt:MouseEvent):void {
soundClip.scaleX = 0;
dispatchEvent(new Event(SET_VOLUME));
}
这是什么意思?(
基本上它的通知出事了对象的机制。当你分派。事件,需要倾听的事件
这基本上就像拨打电话(dispatchEvent(new CallEvent(CallEvent.CALL)))。如果你正在尝试的人ing不在,他们不听电话事件,所以他们不能做任何事情。如果他们在(addEventListener(CallEvent.Call,answerHandler))中,他们可以回答它,也许直接发送到语音邮件。
要了解完整的概要,请尝试从Adobe阅读本文。
http://www.adobe.com/devnet/actionscript/articles/event_handling_as3_02.html
很多编程语言使用的事件所以这是非常值得让与它交手时。
詹姆斯
响应EDIT1
它看起来像你对我有已成立处理MouseEvent.Click一些物体上的某个地方的方法。当发生这种情况时,它会将另一个对象的scaleX属性设置为0(使其不可见)。然后分派新的事件,并将类型设置为“setVolume”。这是它自己不会做任何事情。在其他地方,这可能是一条线,看起来有点像addEventListener(“setVolume”,doSomethingMethod); 。当原始方法被触发时(看起来像点击鼠标),doSomethingMethod应该会触发。
好的,我有一个疑问,请检查我的问题编辑1:部分 – coderex 2009-12-06 17:41:01
当onclick()被调用时,将会产生“setVolume”,通知任何订阅者(通过调用addEventListener订阅“setVolume”)。 – 2009-12-06 18:13:20
一个例子可能有帮助吗?如果你有Flash IDE中,试试这个在您的时间表:
var ball:Shape = new Shape();
ball.graphics.beginFill(0xFF0000);
ball.graphics.drawCircle(0, 0, 30);
ball.graphics.endFill();
addChild(ball);
stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveListener);
addEventListener("myCustomEvent", myCustomEventListener);
function mouseMoveListener(event:MouseEvent):void
{
dispatchEvent(new Event("myCustomEvent"));
}
function myCustomEventListener(event:Event):void
{
ball.x = stage.mouseX;
ball.y = stage.mouseY;
}
这是代码演示了的addEventListener和dispatchEvent如何对应。 MOUSE_MOVE事件在内部调度,但您可以使用dispatchEvent调度您自己的事件,就像MOUSE_MOVE一样。
在此代码会发生什么事是,MOUSE_MOVE从舞台上被检测到,但不是处理,在mouseMoveListener,你发送另一个事件(被称为myCustomEvemt),这是在myCustomEventListener处理代替。它的作用就像MOUSE_MOVE事件,只有你派发了事件而不是Flash播放器。
希望这会有所帮助。
假设有两个类:A和B.现在,您希望myFun在类B中发生后,应该发生“functionAfterMyFun”。然后,您将在类B的函数myfun()中使用dispatchEvent。
class A
{
function A()
{
objectOfB.addEventListener("myFun_Happened", functionAfterMyFun)
}
function functionAfterMyFun()
{
//do something after myFun has happened in class B
}
}
class B
{
function myfun()
{
dispatchEvent(new Event("myFun_Happened"));
}
}
1067:将类型为String的值的隐式强制转换为不相关的类型flash.events:Event。 :(我是否缺少一个导入? – 2013-11-22 22:06:55
啊对不起,有一个错字,我只是再次编辑它 dispatchEvent(new Event(“myFun_Happened”)); – 2013-11-23 18:55:24
addaddEventListener()
就像是让你的婚前协议。例如,如果你的妻子在外面有另一个男人,你会从你的妻子那里得到100美元。幸运的是,发生了这种情况。 dispatchEvent()
表示您将获得$ 100。
@coderex,请在回答时将您的问题标记为已回答! – alecmce 2010-02-28 04:06:33