Apache flex 无法在flex mobile应用程序中分派自定义事件
我试图从我遇到的一个例子中得到一些代码。大多数功能都可以工作,但在尝试分派自定义事件时失败。目前,试图分派事件的代码位于处理amf远程处理的类中 该示例中有一行用于调度:Apache flex 无法在flex mobile应用程序中分派自定义事件,apache-flex,flex-mobile,Apache Flex,Flex Mobile,我试图从我遇到的一个例子中得到一些代码。大多数功能都可以工作,但在尝试分派自定义事件时失败。目前,试图分派事件的代码位于处理amf远程处理的类中 该示例中有一行用于调度: Application.application.dispatchEvent(new RemoteResultEvent(RemoteResultEvent.USER_UPDATE_COMPLETE,"test")); 但这失败了,因为它不知道什么是application.application“这行有多个标记: -访问未
Application.application.dispatchEvent(new
RemoteResultEvent(RemoteResultEvent.USER_UPDATE_COMPLETE,"test"));
但这失败了,因为它不知道什么是application.application“这行有多个标记:
-访问未定义的属性应用程序“
我认为这是因为这不是为移动应用程序编写的。我尝试将调度程序更改为EventDispatcher
EventDispatcher(
new RemoteResultEvent(RemoteResultEvent.USER_UPDATE_COMPLETE, "worked"));
但是我得到了这个错误:
TypeError:错误#1034:类型强制失败:无法转换事件::RemoteResultEvent@18337731到flash.events.EventDispatcher
这是自定义事件RemoteResultEvent.as中的代码:
package events
{
import flash.events.Event;
public class RemoteResultEvent extends Event {
public static var USER_UPDATE_COMPLETE:String = "UserUpdateComplete";
public var message:String;
public function RemoteResultEvent(eventType:String, message:String) {
super(eventType, false, false);
this.message = message;
}
}
}
我在黑暗中徘徊,因为我是flex和这种类型开发的新手,所以我很可能在做一些非常愚蠢的事情。任何帮助都将受到感激
谢谢
JaChNo您似乎对一般的事件调度感到困惑 可以在扩展EventDispatcher或具有EventDispatcher的任何Flex类中调度事件。大多数Flex组件,包括应用程序扩展EventDispatcher。若要分派活动,您已走上正确的轨道,只需执行以下操作:
dispatchEvent(new RemoteResultEvent(RemoteResultEvent.USER_UPDATE_COMPLETE,"test"));
这将从当前类中分派事件。并不是说所有的FlexUI组件,包括那些用MXML制作的组件都可以被视为一个类
您试图做的是在主级应用程序上调度事件;这是一个可怕的封装漏洞,但是可行的。您必须将其强制转换为应用程序,这样就不会得到泛型对象。像这样:
(Application.application as Application).dispatchEvent(new RemoteResultEvent(RemoteResultEvent.USER_UPDATE_COMPLETE,"test"));
这种方法是从Flex4开始的;而您使用的是:
你没有说,但你暗示了一个事实,你正在一个移动项目中。如果是这样,我不希望mx应用程序类可用,除非您将SWCW/mx组件显式添加到类中。您必须访问Spark应用程序,它没有应用程序属性。这可能就是为什么会出现错误
请确保导入要使用的正确应用程序:
import spark.components.Application
更多关于课堂的信息 您似乎对一般的事件调度感到困惑 可以在扩展EventDispatcher或具有EventDispatcher的任何Flex类中调度事件。大多数Flex组件,包括应用程序扩展EventDispatcher。若要分派活动,您已走上正确的轨道,只需执行以下操作:
dispatchEvent(new RemoteResultEvent(RemoteResultEvent.USER_UPDATE_COMPLETE,"test"));
这将从当前类中分派事件。并不是说所有的FlexUI组件,包括那些用MXML制作的组件都可以被视为一个类
您试图做的是在主级应用程序上调度事件;这是一个可怕的封装漏洞,但是可行的。您必须将其强制转换为应用程序,这样就不会得到泛型对象。像这样:
(Application.application as Application).dispatchEvent(new RemoteResultEvent(RemoteResultEvent.USER_UPDATE_COMPLETE,"test"));
这种方法是从Flex4开始的;而您使用的是:
你没有说,但你暗示了一个事实,你正在一个移动项目中。如果是这样,我不希望mx应用程序类可用,除非您将SWCW/mx组件显式添加到类中。您必须访问Spark应用程序,它没有应用程序属性。这可能就是为什么会出现错误
请确保导入要使用的正确应用程序:
import spark.components.Application
更多关于课堂的信息 您好,首先您是对的,我对事件调度感到困惑!我尝试了您展示的dispatchEvent方法,但如果要从类中调度事件,则尝试从扩展eventdispatcher?的类是否应调用“可能未定义的方法dispatchEvent”会出现错误;是,它需要扩展EventDispatcher类;或者实现IEventPatcher。您可能会从以下内容中受益:现在所有的工作都使用EventDispatcher进行了扩展。感谢您提供有关事件的链接。您好,首先您是对的,我对事件调度感到困惑!我尝试了您展示的dispatchEvent方法,但如果要从类中调度事件,则尝试从扩展eventdispatcher?的类是否应调用“可能未定义的方法dispatchEvent”会出现错误;是,它需要扩展EventDispatcher类;或者实现IEventPatcher。通读以下内容可能会使您受益:所有现在工作的人都使用EventDispatcher扩展了它。感谢您提供有关事件的链接。