`

[转]AIR2.0 NativeProcess in Flash Builder 4.0

 
阅读更多

AIR2.0 NativeProcess in Flash Builder 4.0

刚才测试成功AIR2.0 only的NativeProcess
在此发布一下自己的心得
先谢谢jinni的解答
任何NativeProcess的AIR应用都要以Nativen形式发布
也就是 在Win里要发布成EXE
在Mac下要发布成DMG

之前一直纠结在打包问题上
网上找了很多资料也没解决
有些是说把AIR的应用程序配置文件里的namespace里的AIR版本改成2.0beta/2.0beta2
反正怎么换我打包的时候都会出问题
说是namespace error
我改回到2.0就可以了

还有就是各位打包的时候 记得进到bin-debug目录打包 直接拿swf & app.xml打包就成
我开始就错误的跑到了src目录底下打包半天 老报spark的命名空间有问题- -!

好了 我帖上我的代码 大家试一下吧
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
  3.                                            xmlns:s="library://ns.adobe.com/flex/spark" 
  4.                                            xmlns:mx="library://ns.adobe.com/flex/mx" creationComplete="windowedapplication1_creationCompleteHandler(event)">
  5.         <fx:Script>
  6.                 <![CDATA[
  7.                         import mx.controls.Alert;
  8.                         import mx.events.FlexEvent;
  9.                         
  10.                         private var na:NativeProcess = new NativeProcess();
  11.                         private var info:NativeProcessStartupInfo = new NativeProcessStartupInfo();
  12.                         protected function windowedapplication1_creationCompleteHandler(event:FlexEvent):void
  13.                         {
  14.                                 Alert.show(NativeProcess.isSupported+"");
  15.                         }


  16.                         protected function btn_clickHandler(event:MouseEvent):void
  17.                         {
  18.                                 if(NativeProcess.isSupported){
  19.                                         
  20.                                         var file:File = new File("application path in your OS that you wanna open by NativeProcess");
  21.                                         info.executable = file;
  22.                                         na.start(info);
  23.                                         
  24.                                 }
  25.                         }

  26.                 ]]>
  27.         </fx:Script>
  28.         <fx:Declarations>
  29.                 <!-- Place non-visual elements (e.g., services, value objects) here -->
  30.         </fx:Declarations>
  31.         <s:Button label="开启" id="btn" click="btn_clickHandler(event)" />
  32. </s:WindowedApplication>
复制代码
指定要打开的系统应用程序的路径问题:
我开始就直接进到一个目录找了一个EXE文件 直接copy它的路径就往上帖
运行的时候怎么都说 指定的是无法执行的文件
后来输出了才发现系统里的绝对路径里的“\” 程序认成了转义符
所以 比如我想打开我电脑里的电驴
路径应该是:D:\\Program Files\\easyMule\\emule.exe

打包:
我开始遇到的问题是 我无法在cmd.exe里使用adt命令。。
我一直认为我已经配置了JAVA_HOME跟PATH了的
我用的WIN7系统
后来一看 环境变量 设置里 
才想起来 我现在用的是Administrator帐号登陆系统的 配置全没了
所以要配置的就是JAVA_HOME跟PATH
JAVA_HOME:JDK目录
PATH:JDK bin的目录;Flex SDK里的bin目录 其中包含着adt.exe
这样之后 在cmd.exe里试一下输入javac
会弹出一堆命令格式 成功了
再试一下输入adt
同上 成功!

打包命令:(假定你已经在你应用程序目录下的bin-debug目录)
adt -package -storetype pkcs12 -keystore [你数字证书的位置 不包含这个方括号] -storepass [你数字证书的密码 不包含这个方括号 这个参数可输可不输 不输的话后面它会问你要的 到时候再输的话是不会直接显示出来密码的] -target native [你要发布的应用程序的名称].exe/dmg [你的项目名称 如:我的AIR项目名为Test]-app.xml [bin-debug目录下的swf名称].swf

按回车 它就愣那了  别担心 过个一会儿 它就给你生成一个银色的跟AIR应用程序的图标形状一样的EXE文件了 双击安装 再试一下 就成功了:)

关于supportedProfiles标签:
在发布你的应用程序之前 请在你的应用程序配置文件里加入<supportedProfiles></supportedProfiles>标签
加在哪一行? 我是加在最后一行 你也可以加在其它位置 只要你不加到被注释的行列里面就可以 I think so.
中间的值的话 如果你要发布成桌面apps 参数值就为extendedDesktop desktop 顺序要按这样的顺序 不要把desktop放前面 我试了一下放前面的话 发布出来就显示false了 你也可以尝试一下 可能你会成功
如果你要发布的移动设备的话 参数值就为extendedMobileDevice mobileDevice 这里的顺序哪个前哪个后我不清楚 没试过。。我用的iPhone... 唉 无语中。。。你可以是尝试一下告诉大家。。
OK 就到这里吧 good luck!

分享到:
评论
1 楼 keren 2011-12-27  
学习了。
没想到这么多机关。

相关推荐

Global site tag (gtag.js) - Google Analytics