ANE-IOS与AS的互通

从AS调用IOS的函数与传参数

extContex是ExtensionContext的实例,通过call调用。第一个参数是IOS对应的函数,之后所有的参数会变成一个数组传入IOS中。也就是说函数名称后面可以是一个可变数组。例如:

extContex.call("setVolume",参数1,参数2,参数3);

IOS中

FREObject setVolume(FREContext ctx, void* funcData, uint32_t argc, FREObject argv[])
{
  //argv[]接收到的就是AS传过来的参数
  //argv[0]对应参数1,argv[1]对应参数2,argv[2]对应参数3
  return NULL;
}

 

从IOS中往AS抛事件是这样的

FREDispatchStatusEventAsync(eventContext, eventCode, dataCode);
eventContext:是as传过来的FREContext
eventCode:对应的是AS中的StatusEvent中的code
dataCode:对应的是AS中的StatusEvent中的level
eventCode我们可以用来传送一个字符串类型的标识符,在AS中接收到StatusEvent.STATUS事件后,用拿来判断做什么处理,例如:
protected function onStatus(event:StatusEvent):void
{
  switch(event.code)
  {
    case "阿西吧":
      trace("他在说韩国鸟语");
      break;
    case "草泥马":
      trace("这是中国神兽");
      break;
  }
}

dataCode我们可以用来携带从原生返回的数据,比如xml数据,json数据,或者有分隔符的字符串"a|b|c|d"。有分隔符的字符串最终能用splite("|")转成数组。这样我们就完成了从原生到AS的回调与数据传输

posted on 2014-07-22 17:36  老镇  阅读(...)  评论(... 编辑 收藏

导航