当用AIR访问操作系统剪贴板时,有一个重要概念,称为延迟呈现(deferred rendering),它允许我们将一个方法的引用而不是具体数据传入剪贴板。
使用延迟呈现后,只有当用户请求一个粘贴操作时,数据才会真正增加到剪贴板。如果要处理大量数据或者将信息复制到剪贴板对用户处理器负荷太大时,延迟呈现就会非常有用。请看下面代码:
private function copyToClipboard():void
{
//var dataObj:Object = grid.selectedItem;
Clipboard.generalClipboard.clear();
//Clipboard.generalClipboard.setData("customFormat", dataObj);
Clipboard.generalClipboard.setDataHandler("customFormat", getData);
status = "复制成功";
}
要完成延迟呈现,应当使用setDataHandler()方法。这里会传入方法而不是具体的数据,只有用户尝试粘贴操作时才会执行这个方法。若要直接向此剪贴板对象添加数据,请改用setData()方法。
注意,使用延迟呈现有一个的缺点:用户关闭AIR应用时,数据不再可用。
下载本实例的完整源码:deferred-rendering.zip
|