当前位置: 首页 > news >正文

使用AIR进行移动APP开发常见功能和问题(上)

1、  获取最近联系人

思路:侦听Geolocation的update事件,获取经度和纬度信息,再把坐标信息上传至服务器,服务器比较坐标信息算出距离,返回最近位置的若干个人。

update时间在2种情况下会触发,一是gps,二是网络位置服务,这都要求手机里面必须开一个。注意gps在室内一般都没有信号。

部分开放平台已经开放相关api,服务器部分可不用自己写,研究下现有的开放api。

 

2、遍历文件夹里面的所有文件

 

[javascript]  view plain copy
  1. var file:File =File.applicationDirectory.resolvePath("guessing");  
  2. this.pop(file);  
  3.    
  4. private  functionpop(file:File): void    
  5. {   
  6.          if(file.isDirectory)   
  7.          { //指示是否为对目录的引用。如果 File 对象指向一个目录,则该值为 true;否则为 false    
  8.                    vararr:Array=file.getDirectoryListing();//getDirectoryListing()返回与此 File 对象表示的目录下的文件和目录对应的 File 对象的数组。此方法不浏览子目录的内容。     
  9.                    for  each(var file:File in arr){ //File 对象表示文件或目录的路径(既可以是文件也可以是路径)    
  10.                             if(!file.isDirectory)   
  11.                             {   
  12.                                      trace(file.nativePath,file.url)  
  13.                                       
  14.                             }else    
  15.                             {   
  16.                                      pop(file);   
  17.                             }   
  18.                    }   
  19.          }   
  20. }  

 

如果想自选目录,用这样浏览,并侦听选择事件:

 

[javascript]  view plain copy
  1. file.browseForDirectory("请选择一个目录" );  
  2. file.addEventListener(Event.SELECT,onSingleSelect);   


 

 

3、Embed绑定任意类型文件

flex sdk Embed文件时会强制检测类型,例如jpg文件直接把扩展名改成swf,embed到代码中就会报 java.lang.NullPointerException错误

 

绑定文件的方法:

[Embed(source="asset.swf", symbol="swf中某个元件的类名",mimeType="类型")]

public var img01:Class;

 

如果要绑定特定的文件类型,指定mimeType,如果不配置mimeType,则会强制检测类型,并根据扩展名认定mimeType类型

[Embed(source="guessing/face/1.swf",mimeType="application/octet-stream")]

绑定任意类型文件设置mimeType=application/octet-stream,这样以二进制方式加载绑定文件,new出来后就是byteArray。

 

4、air加载远程文件

移动平台air 不论是android平台还是ios平台,都支持加载远程文件,但会有安全域问题

错误:

Error #2044: Unhandled IOErrorEvent:.text=Error #2036: Load Never Completed.

需要在服务器网站根目录下下配置crossdomain.xml 设置domain="*",允许所有外部请求。

特殊情况,如果服务器有防外链限制,则会报错,比如请求腾讯cdn文件,as项目就能正常加载,放air项目就不行,报Error #2044: Unhandled IOErrorEvent:. 

 

5、发布apk文件失败

把很多零散文件打包成apk时,很容易出错,测试5千个文件,一直打包失败。解决方法是把零散小文件批量embed成一个素材包再进行apk打包。

发布apk时打包文件一定不要漏了文件,因为调试起来很麻烦,查找问题很不方便。

 

6、开发多个版本解决方案

如果想一个版本同时支持手机版、web版,甚至ios版,逻辑代码基本一样,只是UI不同,这是如果项目完全独立开发,可能维护成本比较高,建议采用一个版本的方式开发维护。

思路:程序代码用一份,UI分开,分别配置几个不同的工程区调用相同的源代码,不同的ui,生成不同的UI。

 

7、其他注意事项:

AIR 的 -app.xml 配置文件里,要把权限全部预定义好才行,否则可能没权限操作(比如写文件)或不响应某个功能的情况

 

8、AIR FOR IOS 生成的APP:

1. 远程更新在 iOS 上是不允许的, 它属于代码注入, 有安全隐患,但是将 swf打散成n个子 swf 模块, 封装到1个 IPA 里现在可以了,把所有要加载的 swf 封装到 IPA 内部, 并且定义到配置文件里。不带程序正常的swf能加载显示,并且里面所带的动画和视频声音播放都正常。

2. 测试了流式加载flv,flv视频的播放控制用AS3也是ok的,其他的视频格式没试过。

3. 测试了外部加载mp3格式的声音及声音播放控制也是ok的。

 

 

转载于:https://www.cnblogs.com/fuland/p/3629393.html

相关文章:

  • 应用el-tabs模拟nav menu组件
  • “ an error occurred during ssl communication”--VisualSVN
  • mybatis 动态SQL .1
  • 从零开始编写自己的C#框架(2)——开发前准备工作
  • 下列关于异常处理的描述中,错误的是()。
  • centos搭建svn 服务器 并同步到web 目录(总结)
  • windows phone 7 中怎样定义和使用资源(Resource)
  • Scrum丰田之道
  • 一步步学习微软InfoPath2010和SP2010--第十四章节--高级选项(9)--高级函数
  • vue+webpack 在引入图片以及在img引用变量名的本地图片报错
  • android选择图片或拍照图片上传到服务器(包括上传参数) (转)
  • 你应该了解的大数据10个新趋势
  • js编写倒计时-距离开始时间距离结束时间-结束
  • in, out, ref
  • 以太坊 ERC223 标准与 ERC20 的区别是什么?
  • gitlab-ci配置详解(一)
  • input实现文字超出省略号功能
  • Javascript基础之Array数组API
  • Java比较器对数组,集合排序
  • Lucene解析 - 基本概念
  • Mocha测试初探
  • mysql 数据库四种事务隔离级别
  • Objective-C 中关联引用的概念
  • Tornado学习笔记(1)
  • underscore源码剖析之整体架构
  • 服务器从安装到部署全过程(二)
  • 如何用Ubuntu和Xen来设置Kubernetes?
  • 使用 5W1H 写出高可读的 Git Commit Message
  • 说说动画卡顿的解决方案
  • 小程序、APP Store 需要的 SSL 证书是个什么东西?
  • 蚂蚁金服CTO程立:真正的技术革命才刚刚开始
  • ​软考-高级-系统架构设计师教程(清华第2版)【第9章 软件可靠性基础知识(P320~344)-思维导图】​
  • # 安徽锐锋科技IDMS系统简介
  • (11)MSP430F5529 定时器B
  • (pojstep1.1.2)2654(直叙式模拟)
  • (ros//EnvironmentVariables)ros环境变量
  • (安卓)跳转应用市场APP详情页的方式
  • (二)WCF的Binding模型
  • (附源码)ssm学生管理系统 毕业设计 141543
  • (利用IDEA+Maven)定制属于自己的jar包
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (南京观海微电子)——COF介绍
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (一)RocketMQ初步认识
  • (一)SpringBoot3---尚硅谷总结
  • .cfg\.dat\.mak(持续补充)
  • .net core webapi 部署iis_一键部署VS插件:让.NET开发者更幸福
  • .NET Core 和 .NET Framework 中的 MEF2
  • .NET/C# 避免调试器不小心提前计算本应延迟计算的值
  • .NET/C# 使用 SpanT 为字符串处理提升性能
  • .net知识和学习方法系列(二十一)CLR-枚举
  • .Net中的设计模式——Factory Method模式
  • .sh文件怎么运行_创建优化的Go镜像文件以及踩过的坑
  • ??eclipse的安装配置问题!??
  • [ 2222 ]http://e.eqxiu.com/s/wJMf15Ku