在ANE中调度事件

时间:2013-04-25 20:45:03

标签: android flex events mobile adobe

编写Air Native Extension:

如何从Android本机代码调度事件并让ANE的actionscript接口部分监听该事件并听取它?

我到处寻找,我似乎无法弄清楚这一点。

1 个答案:

答案 0 :(得分:2)

as3 part

package com.yourpackage
{
    import flash.events.EventDispatcher;
    import flash.events.IEventDispatcher;
    import flash.events.StatusEvent;
    import flash.external.ExtensionContext;

    public class EventCaller extends EventDispatcher
    {
        private var context:ExtensionContext;

        public function EventCaller(target:IEventDispatcher=null)
        {
            super(target);      
            if(!context)
                context = ExtensionContext.createExtensionContext("com.yourpackage", null);
            if(context)
                context.addEventListener(StatusEvent.STATUS,statusHandle);
        }
        // listener function
        public function statusHandle(event:StatusEvent):void{
            trace(event);
            // process event data
        }

        public function requestEvent():void{
            context.call("requestEvent");
        }
    }
}

java部分(只是功能部分)

public class RequestEvent implements FREFunction {  

    @Override
    public FREObject call(FREContext context, FREObject[] args) {

               // dispatching event
               context.dispatchStatusEventAsync("someCode", "someLevel");

               Boolean value = true;               
               return FREObject.newObject(value);
        }
}