我有一个扩展EventDispatcher的类。
我想要做的是在单击组件时调度click事件。 (该类基本上是文本字段中的某些文本,需要能够执行某些操作,并且它需要能够响应单击)。听起来很容易......我希望在单击该部分文本时调度该事件。但是......怎么样?它不像我可以去的按钮
myButton.addEventListener(MouseEvent.CLICK, myClickHandler);
这很清楚,因为有些组件会在单击myButton时监听调度的Click事件。它内置于AS3框架中,按钮知道如何监听点击事件。
在导入语句之后我得到了:
[Event(name="click" type="mx.events.Event")]
当组件单击时,如果组件尚不知道如何响应点击事件,我该如何调度事件?我已经尝试在textfield中添加一个包含这个自定义文本类的事件监听器,但没有发生任何事情,因为尚未调度Click事件。
答案 0 :(得分:0)
您可以创建自己的点击事件并发送。您也可以这样做来发送没有用户点击的对象的点击:D
试试这个:
var mEvent:MouseEvent = new MouseEvent(MouseEvent.CLICK, [HERE MORE PARAMS BY YOU]);
yourObject.dispatchEvent(mEvent);
现在,您将从yourObject接收Click Events。
答案 1 :(得分:0)
假设您的课程包含TextField tf。然后
public function YourClass():void { //Constructor
{
//intialize Something
//initialize tf
tf.addEventListener(MouseEvent.CLICK, onClick);
...
}
...
private function onClick(e:MouseEvent):void {
this.dispatchEvent(new MouseEvent(MouseEvent.CLICK));
}
答案 2 :(得分:0)
好的,我在构造函数中尝试了这个:
var mEvent:MouseEvent = new MouseEvent(MouseEvent.CLICK, true, false);
this.dispatchEvent(mEvent);
然后,在包含文本字段中,在迭代这些对象(每个对象称为cp)时,我这样做了:
cp.addEventListener(MouseEvent.CLICK, mouseClickHandler);
最后是mouseClickHandler:
private function mouseClickHandler(event:MouseEvent):void
{
trace("Clicked!!!!!!!!!!!");
}
在调试模式下运行我得到了nada。 NUNCA。 NIENTE。尼坦。这就是说:没有被点击的痕迹。我做错了吗?