getFunctions
public abstract Map<String,FREFunction> getFunctions()
实现此函数以返回包含上下文公开的所有函数的 Java Map 实例。调用函数时,映射密钥值用于查找 FREFunction 对象。
返回:
-
Map<String, FREFunction>
-
包含字符串密钥值的映射对象和相应的 FREFunction 对象。当扩展的 ActionScript 部分调用 ExtensionContext 类的
call()
方法时,AIR 运行时使用此 Map 对象查找要调用的函数。
示例:
以下 getFunctions() 示例创建包含三个假设函数的 Java HashMap。通过将字符串“negate”、“invert”或“reverse”传递到 ExtensionContext
call()
方法,可以调用扩展的 ActionScript 代码中的这些函数。
@Override
public Map<String, FREFunction> getFunctions() {
Map<String, FREFunction> functionMap = new HashMap<String, FREFunction>();
functionMap.put( "negate", new NegateFunction() );
functionMap.put( "invert", new InvertFunction() );
functionMap.put( "reverse", new ReverseFunction() );
return functionMap;
}
getActionScriptData
public FREObject getActionScriptData()
获取与此上下文关联的 ActionScript 数据对象。Java 和 ActionScript 代码均可读取或修改此数据对象。
返回:
-
FREObject
-
FREObject 表示数据对象。
示例:
FREObject data = context.getActionScriptData();
setActionScriptData
public void setActionScriptData( FREObject object )
设置与此上下文关联的 ActionScript 数据对象。Java 和 ActionScript 代码均可读取或修改此数据对象。
参数:
-
value
-
包含原始值的 FREObject 或 ActionScript 对象。
示例:
FREObject data = FREObject.newObject( "A string" );
context.setActionScriptData( data );
getActivity
public android.app.Activity getActivity()
获取对应用程序活动对象的引用。Android SDK 中的许多 API 都需要此类引用。
返回:
-
android.app.Activity
-
AIR 应用程序的活动对象。
示例:
Activity activity = context.getActivity();
getResourceID
public native int getResourceId( String resourceString )
查找本机 Android 资源的资源 ID。
在
resourceString
参数中指定标识资源的字符串。遵循 Android 上资源访问的命名约定。例如,在 Android 本机代码中要访问的资源的形式为:
R.string.my_string
具有以下
resourceString
:
"string.my_string"
如果无法找到由
resourceString
指定的资源,则此方法将引发 Resources.NotFoundException。
参数:
-
resourceString
-
标识 Android 资源的字符串。
返回:
-
int
-
Android 资源的 ID。
示例:
int myResourceID = context.getResourceID( "string.my_string" );
dispatchStatusEventAsync
public void dispatchStatusEventAsync( String code, String level )
调用此函数可调度 ActionScript StatusEvent 事件。事件的目标是运行时关联此 FREContext 对象的 ActionScript ExtensionContext 实例。
通常,此函数调度的事件为异步事件。例如,扩展方法可启动另一线程来执行某项任务。当其他线程中的任务完成后,该线程会调用
dispatchStatusEventAsync()
以通知 ActionScript ExtensionContext 实例。
注:
dispatchStatusEventAsync()
函数是您可从本机实现的任意线程中调用的唯一 Java API。
在下列情况下,运行时不会调度事件:
-
运行时已释放 ExtensionContext 实例。
-
运行时正在释放 ExtensionContext 实例。
-
ExtensionContext 实例没有任何引用。应由运行时垃圾回收器来释放该实例。
将
code
和
level
参数设置为任意字符串值。这些值可以为所需的任何值,但必须将其与扩展的 ActionScript 端保持一致。
参数:
-
code
-
要报告的状态的描述。
-
level
-
消息的扩展定义的类别。
示例:
context.dispatchStatusEventAsync( "Processing finished", "progress" );
dispose
public abstract void dispose()
当关联的 ActionScript ExtensionContext 对象被丢弃且此 FREContext 对象没有任何其他引用时,由 AIR 运行时调用。您可以实现此方法来清除上下文资源。