0

我无法让事件侦听器在移动应用程序中工作(内置 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);
    }
}

}

在我的移动应用视图中,有两个函数调用 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 移动应用程序的限制吗?

非常感谢任何帮助/建议。谢谢

4

1 回答 1

0

也许制作var parser:BMSDataParser一个私有类变量,并在类的creationCompleteinitialized事件中添加parser.addEventListener(BMS_Event.COMPLETE_EVENT, bmstest);

还有一件事:如果您将 ViewNavigatorApplication 与 Views 一起使用,则在将它们推送到视图堆栈之前不会创建视图navigator.pushView(PayNowView);,因此除非首先显示它们,否则任何侦听器都不会被激活

于 2011-08-11T11:39:53.683 回答