在本机函数中,输入参数可与 ActionScript 类对象相对应。由于所有本机函数参数均为 FREObject 类型,因此 C API 提供了函数用于处理使用 FREObject 变量的类对象。
使用以下 C API 函数可获取和设置 ActionScript 类对象的属性:
-
FREGetObjectProperty()
FREResult FREGetObjectProperty(
FREObject object,
const uint8_t* propertyName,
FREObject* propertyValue,
FREObject* thrownException
);
-
FRESetObjectProperty()
REResult FRESetObjectProperty(
FREObject object,
const uint8_t* propertyName,
FREObject propertyValue,
FREObject* thrownException
);
使用以下 C API 调用 ActionScript 类对象的方法:
FRECallObjectMethod()
FREResult FRECallObjectMethod(
FREObject object,
const uint8_t* methodName,
uint32_t argc,
FREObject argv[],
FREObject* result,
FREObject* thrownException
);
如果输出参数或返回值与 ActionScript 类对象对应,则应使用 C API 创建 ActionScript 对象。应提供指向 FREObject 变量的指针以及与 ActionScript 类构造函数的参数对应的 FREObject 变量。运行时将创建 ActionScript 类对象并设置与其对应的 FREObject 变量。使用以下 C API 函数:
FRENewObject()
FREResult FRENewObject(
const uint8_t* className,
uint32_t argc,
FREObject argv[],
FREObject* object,
FREObject* thrownException
);
注:
这些常规 ActionScript 对象处理函数适用于所有 ActionScript 类对象。但是,Array、Vector、ByteArray 和 BitmapData 这几个 ActionScript 类属于特例,因为它们每一个都涉及大量数据。因此,C API 提供了其他特定函数用于处理这些特例对象。