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的回调与数据传输