[新闻资讯] [业界动态] 示范AIR2中的NativeProcess API
资讯类型: 翻译
来源页面: http://blogs.adobe.com/cantrell/archives/2009/11/demo_of_nativeprocess_apis.html
资讯原标题: A Demonstration of the NativeProcess APIs in AIR 2
资讯原作者: Christian Cantrell
我的评论:
对这篇文你有啥看法,跟贴说说吧!欢迎口水和板砖,哈哈。欢迎大家和我们一同分享更多资讯。
Spotlight 是內建於 Mac OS X 的超快速搜尋技術,可輕鬆找到您所要尋找的內容,即使您不清楚該查看什麼位置也沒問題。
SearchCentral采用了AIR2新的NativeProcess API,便于整合Spotlight ,并提供非常快速的本地文件系统搜索功能。
NativeProcess API使用非常简单。基于苹果OS X系列,下面的代码调用mdfind命令,并设置读取结果的事件监听器。- private function onSearch():void
- {
- var npInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo();
- npInfo.executable = this.mdfindFile; // A reference to the mdfind command
- var args:Vector.<String> = new Vector.<String>;
- args.push("-interpret");
- args.push(this.searchTerm.text);
- npInfo.arguments = args;
- this.processBuffer = new ByteArray();
- this.nativeProcess = new NativeProcess();
- this.nativeProcess.addEvent
- Listener(ProgressEvent.STANDARD_OUTPUT_DATA, onStandardOutputData);
- this.nativeProcess.addEventListener(NativeProcessExitEvent.EXIT, onStandardOutputExit);
- this.setStatus("Searching for " + this.searchTerm.text + "...", true);
- this.nativeProcess.start(npInfo);
- }
复制代码 下面的代码表示缓冲从标准输出的数据:- private function onStandardOutputData(e:ProgressEvent):void
- {
- this.nativeProcess.standardOutput.readBytes(this.processBuffer, this.processBuffer.length);
- }
复制代码 下面的函数是一个简化版本,它分析数据并放入表格中:- private function onStandardOutputExit(e:Event):void
- {
- var output:String = new String(this.processBuffer);
- var outputArray:Array = output.split("\n");
- var data:Array = new Array();
- for each(var path:String in outputArray)
- {
- var f:File = new File(path);
- if (!f.exists) continue;
- var o:Object = new Object();
- if (f.isDirectory)
- {
- o.name = "/" + f.name;
- }
- else
- {
- o.name = f.name;
- }
- o.type = f.extension;
- o.lastModified = f.modificationDate;
- o.path = f.nativePath;
- data.push(o);
- }
- var dp:ArrayCollection = new ArrayCollection(data);
- this.fileGrid.dataProvider = dp;
- this.setStatus(dp.length + " items found");
- }
复制代码 SearchCentral代码将放到Adobe Labs上,要不了多久AIR 2 Beta也会发布出来了(很快!)。如果你有任何问题,请留下你的意见。 |
-
1
评分人数
-
达达 赐本贴 威望 + 1 点
银子 + 20 两
诏曰: