Apache flex 如何从其他类触发ActionScript 3.0中的自定义事件
我想创建一个自定义事件,任何其他类都可以访问它。 假设我有Apache flex 如何从其他类触发ActionScript 3.0中的自定义事件,apache-flex,actionscript-3,events,actionscript,adobe,Apache Flex,Actionscript 3,Events,Actionscript,Adobe,我想创建一个自定义事件,任何其他类都可以访问它。 假设我有NavigationMenuClass.as,其中包含一些next、prev按钮,以及另一个页面类。as应该在每个next或prev按钮按下时显示特定页面。 我需要创建一个名为“showPage”的自定义事件(将编写一个EVENTClass.as来管理所有此类事件),当该事件发生时,需要调用Page.as类成员函数 private function nextPress(event:Event) { //dispatchEvent(
NavigationMenuClass.as
,其中包含一些next、prev按钮
,以及另一个页面类。as
应该在每个next
或prev
按钮按下时显示特定页面。
我需要创建一个名为“showPage”
的自定义事件(将编写一个EVENTClass.as来管理所有此类事件),当该事件发生时,需要调用Page.as类成员函数
private function nextPress(event:Event) {
//dispatchEvent(new Event("showPage"));
// this will call the Page class Menmber function page:Page = new Page; page.showNextPage();
}
在不传递对象的情况下,如何使用
Event
和Event Dispatcher
方法调用特定的成员函数。您似乎有点困惑
因此,您有一个显示层次结构,其中Page.as显示对象是NavigationMenuClass.as的父对象,对吗
您的NavigationMenuClass应该为“下一个”和“上一个”分派事件。Page类应该侦听这些事件并执行一些操作
您的代码已经完成了分派部分,尽管它被注释掉了。我会将其放入按钮的单击处理程序中,并使用它发送下一个或上一个事件:
private function nextPress(event:Event) {
// dispatchEvent(new Event("showPage"));
// this will call the Page class Menmber function page:Page = new Page; page.showNextPage();
dispatchEvent(new Event("next"));
}
在您的页面中。仅添加事件侦听器时:
navigationMenuClassInstance.addEventListener('next', onNext);
public function onNext(event:Event):void{
// write code to change content
}
您可以使用相同的方法实现上一个事件。来解决你的一些“奇怪的字眼”
我想创建一个自定义事件并将其
将由任何其他类访问
我不知道你说的无障碍是什么意思。您可以创建一个扩展事件的自定义事件类,任何其他类都可以使用它,只要它导入它。上面的示例没有创建自定义事件类,而是使用默认事件类 在调度方面,事件只将自身调度到其“父级”。如果事件冒泡,它将转到它的父级,然后是父级的父级,依此类推,一直到舞台 我怎么能不把东西传出去呢 调用特定的成员函数 使用事件和事件调度器 方法
我不知道你说的“传递物体”是什么意思。在分派事件时,该事件类始终作为该事件侦听器方法的参数提供给事件侦听器。这有点像传递一个物体。你似乎有点困惑 因此,您有一个显示层次结构,其中Page.as显示对象是NavigationMenuClass.as的父对象,对吗 您的NavigationMenuClass应该为“下一个”和“上一个”分派事件。Page类应该侦听这些事件并执行一些操作 您的代码已经完成了分派部分,尽管它被注释掉了。我会将其放入按钮的单击处理程序中,并使用它发送下一个或上一个事件:
private function nextPress(event:Event) {
// dispatchEvent(new Event("showPage"));
// this will call the Page class Menmber function page:Page = new Page; page.showNextPage();
dispatchEvent(new Event("next"));
}
在您的页面中。仅添加事件侦听器时:
navigationMenuClassInstance.addEventListener('next', onNext);
public function onNext(event:Event):void{
// write code to change content
}
您可以使用相同的方法实现上一个事件。来解决你的一些“奇怪的字眼”
我想创建一个自定义事件并将其
将由任何其他类访问
我不知道你说的无障碍是什么意思。您可以创建一个扩展事件的自定义事件类,任何其他类都可以使用它,只要它导入它。上面的示例没有创建自定义事件类,而是使用默认事件类 在调度方面,事件只将自身调度到其“父级”。如果事件冒泡,它将转到它的父级,然后是父级的父级,依此类推,一直到舞台 我怎么能不把东西传出去呢 调用特定的成员函数 使用事件和事件调度器 方法
我不知道你说的“传递物体”是什么意思。在分派事件时,该事件类始终作为该事件侦听器方法的参数提供给事件侦听器。这有点像传递一个对象。另外,在遵循Flextras优秀指南时,请确保NavigationMenuClass扩展了EventDispatcher,否则仅调用dispatchEvent()方法将无法工作 另外,在遵循Flextras优秀指南时,请确保NavigationMenuClass扩展了EventDispatcher,否则仅调用dispatchEvent()方法将不起作用 如果类没有扩展EventDispatcher,它应该抛出一个编译器错误,对吗?如果类没有扩展EventDispatcher,它应该抛出一个编译器错误,对吗?