我在移动应用程序(内置于Flash Builder 4.5,Flex SDK 4.5.1)中使用事件侦听器时遇到了问题。
我有一个名为BMS_Event.as的事件类,如下所示:
package model
{
import flash.events.Event;
public class BMS_Event extends Event
{
public static var COMPLETE_EVENT:String = "BMSData_Complete";
public static var FAULT:String = "BMSDatafault";
public var data:*;
public function BMS_Event(type:String, data:*=null, bubbles:Boolean=false, cancelable:Boolean=false)
{
this.data = data;
super(type, bubbles, cancelable);
}
}}
调度事件的类:
package model
{
import flash.events.Event;
import flash.events.EventDispatcher;
import model.BMS_Event;
public class BMSDataParser extends EventDispatcher
{
public function BMSDataParser()
{
trace("BMSDataParser function");
var BMSDataCompleteEvent:BMS_Event = new BMS_Event(BMS_Event.COMPLETE_EVENT);
dispatchEvent(BMSDataCompleteEvent);
}
}}
在我的Mobile App视图中,有两个调用eventparser的函数,然后是一个侦听完整事件的eventlistener:
import model.BMSDataParser;
import model.BMS_Event;
protected function getData():void
{
var parser:BMSDataParser = new BMSDataParser();
parser.addEventListener(BMS_Event.COMPLETE_EVENT, bmstest);
}
private function bmstest(e:BMS_Event):void
{
trace("bmstest function");
}我遇到的问题是事件侦听器没有触发,在此之前一切都很正常。它可以在web应用程序中工作,但无论出于什么原因,它都不能在移动应用程序中工作。我是移动应用程序开发的新手-这是AIR移动应用程序的限制吗?
非常感谢您的任何帮助/建议。谢谢
发布于 2011-08-11 19:39:54
可以将var parser:BMSDataParser设置为私有类变量,然后在类的creationComplete或initialized事件中添加parser.addEventListener(BMS_Event.COMPLETE_EVENT, bmstest);
还有一件事:如果您在视图中使用ViewNavigatorApplication,则直到将视图推送到视图堆栈(例如navigator.pushView(PayNowView); )时才会创建视图,因此除非首先显示监听器,否则不会激活任何监听器
https://stackoverflow.com/questions/6982093
复制相似问题