使用 ActionScript 类对象

在本机函数中,输入参数可与 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 提供了其他特定函数用于处理这些特例对象。