我希望这将是一个简单的问题。我有主要活动,在这个活动中我创建了某个类的实例。如何将一些事件从一类发送到主要一类?如何设置某种侦听器以在类之间发送通知。我现在知道/使用的唯一选择是保持对父类的引用并直接从子类调用某些函数。
我想知道是否可以在 ActionScript 中创建类似的东西,我可以在其中调用 dispatchEvent(new Event("name")) 并稍后设置 addEventlistener("name" function) ?
我希望这将是一个简单的问题。我有主要活动,在这个活动中我创建了某个类的实例。如何将一些事件从一类发送到主要一类?如何设置某种侦听器以在类之间发送通知。我现在知道/使用的唯一选择是保持对父类的引用并直接从子类调用某些函数。
我想知道是否可以在 ActionScript 中创建类似的东西,我可以在其中调用 dispatchEvent(new Event("name")) 并稍后设置 addEventlistener("name" function) ?
如果“我实现了某个类”意味着您在 Activity 类中声明了一个嵌套类,那么嵌套的非静态类将引用父类对象。
通常,您始终可以自己创建调度程序/侦听器模式。创建侦听器接口并将 addListener 或 setListener 方法添加到将调度事件的类。
监听器示例:
public interface IAsyncFetchListener extends EventListener {
void onComplete(String item);
void onError(Throwable error);
}
事件调度程序示例:
public class FileDownloader {
IAsyncFetchListener fetchListener = null;
...
private void doInBackground(URL url) {
...
if (this.fetchListener != null)
this.fetchListener.onComplete(result);
}
public void setListener(IAsyncFetchListener listener) {
this.fetchListener = listener
}
}
带有事件监听器的类示例:
public class MyClass {
public void doSomething() {
FileDownloader downloader = new FileDownloader();
downloader.setListener(new IAsyncFetchListener() {
public void onComplete(String item) {
// do something with item
}
public void onError(Throwable error) {
// report error
}
});
downloader.start();
}
}
只需在生成事件的类上实现一个侦听器(或侦听器列表)。
当生成事件时,遍历此列表并调用所有侦听器必须实现的方法(也许通过接口?)
希望它有所帮助,JQCorreia