AIR IOS应用注册文件类型,由第三方APP通过Open with启动

在IOS里,这个叫Document Interaction ,通过在info.plist文件里进行设置实现文件关联
在AIR里,-app.xml文件内iphone/InfoAdditions下的key/value内容都会被添加到info.plist. 内容参考IOS的即可
<key>CFBundleDocumentTypes</key> // 文档类型
  <array>
    <dict>  // 每个Dict对应一个类型
      <key>CFBundleTypeName</key>
      <string>txt</string>
      <key>LSHandlerRank</key>
      <string>Owner</string> // 设为Owner时,文档会COPY到documents/inbox文件夹下
      <key>LSItemContentTypes</key>
      <array>
        <string>com.youapp.txt</string>
        <string>public.plain-text</string>
      </array>  
    </dict>
  </array>
<key>UTExportedTypeDeclarations</key> // 导出类型定义
  <array>
    <dict>  每个Dict对应一个类型
      <key>UTTypeConformsTo</key>
      <array>
        <string>public.plain-text</string>
        <string>public.text</string>
      </array>
      <key>UTTypeDescription</key>
      <string>Text File</string>
      <key>UTTypeIdentifier</key>
      <string>com.youapp.txt</string>
      <key>UTTypeTagSpecification</key>
      <dict>
        <key>public.filename-extension</key>
        <string>txt</string>
        <key>public.mime-type</key>
        <string>text/plain</string>
      </dict>
    </dict>
  </array>
AIR应用通过InvokeEvent事件可接收到文件进行后续处理.

private function preinitializeHandler():void {
  NativeApplication.nativeApplication.addEventListener(InvokeEvent.INVOKE, invokeHandler);
}
private function invokeHandler(event:InvokeEvent):void {
  var items:Array = event.arguments;
  if( items.length > 0 ) {
    var file:File = new File( event.arguments[0] );
    // your code …
  }    
}
来源:Apps开发网

[转]AIR开发ios游戏总结

最近开发了一个农场类游戏,游戏不算大,功能还算齐全。
我向大家说一样开发中遇到的问题:
1,尽量使用位图,如果是纯色块的话,可以用矢量。
2,资源和素材最好用外部加载的方式,特别是皮肤,这样可以动态的更新皮肤
3,遮罩的效率不高,如果非要用的话,最好把里面的图片先加载好。因为在移动设备里,外部资源加载消耗很大,可以在游戏刚开始把大部分加载好。
4,字体上是关键,最好选择设备有的字体,不要嵌入字体。嵌入的字体会出现问题,而且效率很低很低,特别是在ipad3和低清设备上面。如果你不知道有什么字体,可以在”越 狱”的ios机子上,用91软件,可以把上面的字体全部弄下来。
5,游戏中只使用一次的东西,可以用到的时候再加载,用完后就卸掉。像每日奖励这种,就可以这样做。
6,我们用AIR3.2打包后,会出现设备crash。用AIR3.1和3.3没有问题。但是3.1有个小问题,ipad3 loading那儿图片会斜一下,不过问题不大。
7,如果图形上面要求不是很高,可以只做两套UI,一套是iphone大小,一套ipad2大小,如果是低清设备,就把ihpone大小基础上缩小一倍,如果是ipad3就在ipad2大小基础上加大一倍。
8,最好把游戏进程和UI动画用不同的两个EnterFrame来控制。这样在一些大的UI弹出窗时,可以先暂停游戏进程。
9,做ios游戏,尽量用itouch来测试游戏。如果能在itouch上面跑得不错,自然在iphone,ipad上面问题就不大。
10,不需要鼠标操作的,要把mouseEnabled设置成false ,如果它的子对象也不需要鼠标事件,要把mouseChildren设置为false。
11,如果对手指触摸精确度要求不是很高,可以只用MouseEvent事件,一是方便测试,二是消耗CPU少。
13,如果要存储本地文件和数据,要把数据存储到File.applicationStorageDirectory下面,一是为了设备兼容性,二是这样软件更新的话,数据还在。
14,如果开发游戏的话,一定要用原生的AS项目,纯AS项目要比flex项目效率高很多。
15,尽可能早的真机测试,能更快地发现问题。
16,现在flash builder4.6及以上版本都能方便地打包ipa,完全可以不用adt命令行。

Adobe AIR 应用程序图标

文件名

图像大小

用法

Default.png

320 x 480

iPhone,标准分辨率

Default@2x.png

640 x 960

iPhone,高分辨率

Default-Portrait.png

768 x 1004

iPad,纵向

Default-PortraitUpsideDown.png

768 x 1004

iPad,倒置纵向

Default-Landscape.png

1024 x 748

iPad,左横向

Default-LandscapeRight.png

1024 x 748

iPad,右横向

Default-example.png

320 x 480

标准 iPhone 上的 example://URL

Default-example@2x.png

640 x 960

高分辨率 iPhone 上的 example:// URL

Default-example~ipad.png

768 x 1004

纵向 iPad 上的 example:// URL

Default-example-Landscape.png

1024 x 748

横向 iPad 上的 example:// URL

via Adobe AIR 应用程序图标.

How To unCompress SWF

I want to get the swf which is not compressed from Flex Builder. But I don’t know how to set up the Flex Builder. Please kindly tell me if you can answer this question. So now I develop a tool to convert the swf from compressed to uncompressed. If you meet the same problem, you can try this tool. Here is the link. http://source.ceflash.com/sites/download/unZipSwf.air

Related link: http://source.ceflash.com/sites/download/ExtractGraphics.air