java - 将 FREArray 从 Java 返回到 Flash

标签 java actionscript-3 air air-native-extension

我有一个 native android 函数,我使用 ANE 在 Flash 中调用它:

public class GetProductsFunction implements FREFunction {
    private static final String TAG = "GetProducts";

    @Override
    public FREObject call(FREContext context, FREObject[] args) {
        FREArray freArray = IAPManager.getInstance().getFREProducts();

        return freArray;
    }
}

在闪存方面,我这样调用该函数:

var object:Object = this.extContext.call("GetProductsFunction");

我不太确定如何获取我返回的 FREArray。 Flash 中的函数返回一个 ActionScript 对象,但显然无法从对象获取数组。

那么如何读取这些数据呢?

最佳答案

Java 端:

public class testFunction implements FREFunction {
    public FREByteArray call(FREContext context, FREObject[] passedArgs) {    
        FREByteArray freByteArray = null;
        try {
            byte[] rdata = ...the bytes you have...;
            int packetLenght = 8;

            //Prepare an ActionScript ByteArray
            freByteArray = FREByteArray.newByteArray();
            freByteArray.setProperty("length", FREObject.newObject(packetLenght));
            freByteArray.acquire();
            ByteBuffer bytes = freByteArray.getBytes();

            //Fill it
            if(rdata != null)
                bytes.put(rdata, 0, packetLenght );

            freByteArray.release();
        } catch (Exception ex) {
            Log.e("MYANE", "testFunction Exception " + ex.getMessage());
        }

        return freByteArray;
    }
}

ActionScript 端:

var rdata:ByteArray = new ByteArray();
var received:Object = extContext.call('test') as ByteArray;
if (received is ByteArray)
{
    //Read bytes in rdata
    received.readBytes(rdata);
}

关于java - 将 FREArray 从 Java 返回到 Flash,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17819391/

相关文章:

java - Kotlin - 我们如何使用 getter 和 setter 访问私有(private)属性(property)?访问方法是否在内部调用?

java - 在 Groovy 中备份文件夹

java - 像常量一样工作的变量的命名约定

php - Flash AS3图像处理和保存应用程序的技术要求

actionscript-3 - As3 - SWF 和 AIR 桌面应用程序之间的本地连接

java - 如何逆时针旋转 Canvas android一圈

java - Apache camel,RabbitMQ 如何发送消息/对象

actionscript-3 - 使用链接从库中加载音频文件时出错

actionscript-3 - AS3 TextField 和 TextFormat 内存泄漏 "other bitmap memory"

android - AndroidSDK ADB 工具的闪存路径