日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用air进行移动app开发常见功能和问题(二)

發布時間:2023/12/9 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用air进行移动app开发常见功能和问题(二) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、? Air如何判斷android、ios 平臺網絡連接狀態?

Android,使用as3原生api:

?

[javascript]?view plaincopy
  • if(NetworkInfo.isSupported)//只有android支持??
  • ??
  • ????????????????NetworkInfo.networkInfo.addEventListener(Event.NETWORK_CHANGE,onNetWorkChanged);??????????
  • ????????????????onNetWorkChanged();??
  • ???????}??
  • rivate?function?onNetWorkChanged(e:Event?=?null):void??
  • ???????{????????????????????????????
  • ????????????????var?isActived:Boolean?=false;??
  • ?????????????????
  • ????????????????varinterfaces:Vector.<NetworkInterface>?=NetworkInfo.networkInfo.findInterfaces();??
  • ?????????????????
  • ????????????????varnetInterface:NetworkInterface;??
  • ????????????????for?(?var?i:int?=?0,?len:int=?interfaces.length;?i?<?len;?i++)??
  • ????????????????{??
  • ?????????????????????????netInterface?=interfaces[i];??
  • ?????????????????????????if(netInterface.name.toLowerCase()==?"wifi"?&&?netInterface.active)?{??
  • ???????????????????????????????????isActived=?true;??
  • ???????????????????????????????????break;??
  • ?????????????????????????}?elseif(netInterface.name.toLowerCase()?==?"mobile"?&&netInterface.active)?{??
  • ???????????????????????????????????isActived=?true;??
  • ???????????????????????????????????break;??
  • ?????????????????????????}??
  • ????????????????}??
  • ????????????????PhoneConfig.isOpenNet?=isActived;??
  • ?????????????????
  • ????????????????if(isActived?==?false)??
  • ????????????????{??
  • ?????????????????????????MsgManager.show("當前網絡不可用,請檢查你的網絡設置。");??
  • ????????????????}??
  • ???????}??

  • ? ? ? ? ? ?Ios平臺,需要引入獨立開發的ane擴展和類庫,判斷核心代碼:

    ?

    ?

    [javascript]?view plaincopy
  • if(netInterface.name.toLowerCase()==?"en0"?&&?netInterface.active)?{//wifi??
  • ????????????????isActived=?true;??
  • ????????????????break;??
  • ????????????}else?if(netInterface.name.toLowerCase()==?"pdp_ip0"?&&?netInterface.active)?{//gprs??
  • ????????????????isActived=?true;??
  • ????????????????break;??
  • ?????????}??
  • ?

    ?

    2、? iphone 5讀不到正確尺寸問題

    ios平臺讀取stageWidth和stageHeight方法和普通的air方法一致,但iphone5出現讀取不正確的情況。

    解決方法:需要根目錄放一張名為Default-568h@2x.png尺寸為640*1136的圖片,并且打包進去。

    詳情見http://zengrong.net/post/1752.htm#more-1752

    ?

    3、? ios平臺運行 release版本中途卡住問題

    同一個文件 加載到當前域 加載第二次時 就會卡住(ipa調試版正常,release版就有問題;androidapk不論是調試版還是release都正常)

    ?

    4、? 打包ipa失敗,提示無效的文件:

    打包ipa時,如果文件里面有一個不正確格式的swf,打包必定失敗;如果把swf換成其他不常用文件名,即可解決。

    ?

    5、? android、ios平臺最小化、關閉電源時app的檢測和處理方式

    手機測試結果:

    1)android中 按home鍵或電源鍵都是使程序后臺運行,socket不斷。

    2)ios中按home鍵是使程序后臺運行,socket不斷,按電源鍵程序后臺運行,但socket斷。

    通過事件ACTIVATE、DEACTIVATE來進行代碼邏輯控制

    NativeApplication.nativeApplication.addEventListener(Event.ACTIVATE,onActivate);

    NativeApplication.nativeApplication.addEventListener(Event.DEACTIVATE,onDeactivate);

    ?

    6、? android、ios上文件存儲方法

    核心代碼:

    ?

    [javascript]?view plaincopy
  • ????this.saveSDCardFile(File.applicationStorageDirectory.url+?"/aa.swf",?btye);??
  • (this.getSDCardFile(File.applicationStorageDirectory.url?+?"/aa.swf");??
  • /**?
  • ?????????*?讀取sd卡文件?
  • ?????????*/??
  • ????????private?functiongetSDCardFile(url:String):ByteArray??
  • ????????{??
  • ????????????var?file:File?=File.applicationStorageDirectory.resolvePath(url);??
  • ????????????if(file.exists?==?false)??
  • ????????????????return?null;??
  • ?????????????
  • ????????????var?stream:FileStream?=?new?FileStream();??
  • ????????????stream.open(file,FileMode.READ);??
  • ????????????var?bytes:ByteArray?=?new?ByteArray;??
  • ????????????stream.readBytes(bytes,0,?stream.bytesAvailable);??
  • ????????????stream.close();??
  • ????????????return?bytes;??
  • ????????}??
  • ????????/**?
  • ?????????*?往sd卡上存儲文件?
  • ?????????*/??
  • ????????private?functionsaveSDCardFile(url:String,?bytes:ByteArray):void??
  • ????????{??
  • ????????????var?file:File?=File.applicationStorageDirectory.resolvePath(url);??
  • ????????????var?stream:FileStream?=?new?FileStream();??
  • ????????????stream.open(file,FileMode.WRITE);??
  • ????????????stream.writeBytes(bytes);??
  • ?????????????
  • ????????????stream.close();??
  • ?????}??
  • 注意android和ios上一些目錄路徑不一樣

    ?

    [javascript]?view plaincopy
  • ????trace(?File.applicationDirectory.url);//App:/?(/data/data/app.appId/app/assets)??
  • ????????????????????trace(File.applicationStorageDirectory.url);//|app-storage:/?(/data/data/app.appID/appID/LocalStore)??
  • ????????????????????trace(File.documentsDirectory.url);??
  • ????????????????????trace(File.userDirectory.url);??
  • ????????????????????trace(File.desktopDirectory.url);??
  • ????????????????????trace(File.createTempDirectory().url);//data/data/app.appId/cache??
  • ????????????????????//android:??
  • //??????????????????app:/??
  • //??????????????????app-storage:/??
  • //??????????????????file:///storage/sdcard0??
  • //??????????????????file:///storage/sdcard0??
  • //??????????????????file:///storage/sdcard0??
  • //??????????????????file:///data/data/air.TestLoad.debug/cache/FlashTmp.u15893??
  • ????????????????????//ios:??
  • //??????????????????app:/??
  • //??????????????????app-storage:/??
  • //??????????????????file:///var/mobile/Applications/EBFEE682-C347-4BC1-9264-6E4B65F4D2BA/Documents??
  • //??????????????????file:///var/mobile/Applications/EBFEE682-C347-4BC1-9264-6E4B65F4D2BA??
  • //??????????????????file:///var/mobile/Applications/EBFEE682-C347-4BC1-9264-6E4B65F4D2BA/Desktop??
  • //??????????????????file:///private/var/mobile/Applications/EBFEE682-C347-4BC1-9264-6E4B65F4D2BA/tmp/FlashTmp.bDIE2x??
  • ?

    Android 和 ios 文件系統差異http://www.cnblogs.com/sevenyuan/archive/2013/03/07/2948300.html

    ?

    7、? 游戲過程中的待機處理,比如在激烈pk中不允許手機進入睡眠狀態:

    通過設置NativeApplication.nativeApplication.systemIdleMode屬性

    ?

    [javascript]?view plaincopy
  • /**?
  • ?????????*?是否關閉?休眠模式?
  • ?????????*?@param?value?
  • ?????????*/??
  • ????????public?functionkeepAwake(value:Boolean):void??
  • ????????{??
  • ????????????if(value)??
  • ????????????????NativeApplication.nativeApplication.systemIdleMode=?SystemIdleMode.KEEP_AWAKE;??
  • ????????????else??
  • ????????????????NativeApplication.nativeApplication.systemIdleMode=?SystemIdleMode.NORMAL?;??
  • ????????}??
  • ?

    ?

    8、? 如何讀取air的app配置文件?如何讀取里面的版本號?

    ?

    [javascript]?view plaincopy
  • //版本號??
  • public?function?get?version():String??
  • ????????{??
  • ????????????var?appDescriptor:XML?=NativeApplication.nativeApplication.applicationDescriptor;//配置文件??
  • ????????????var?ns:Namespace?=appDescriptor.namespace();??
  • ????????????return?""?+appDescriptor.ns::versionNumber;??
  • ????????}??
  • ?

    9、? 統計流量功能(未找到as3原生api支持,可通過第三方ane擴展實現)

    ?

    10、手機加載大文件解壓縮很慢,卡住問題(暫無較好的規避方法)

    ?

    11、 ?檢測鼠標按下菜單鍵、及其他鍵的方法及響應

    ?

    [javascript]?view plaincopy
  • NativeApplication.nativeApplication.addEventListener(KeyboardEvent.KEY_DOWN,this.keyHandler);??
  • private?function?keyHandler(e:KeyboardEvent):void??
  • ???????????????????{??
  • ????????????????????????????if(e.keyCode==Keyboard.BACK)??
  • ????????????????????????????{??
  • ?????????????????????????????????????e.preventDefault();??//取消返回鍵的退出事件??
  • ??????????????????????????????????????
  • ?????????????????????????????????????ExitPane.instance.show();??
  • ????????????????????????????}??
  • ????????????????????????????elseif(e.keyCode==?Keyboard.MENU)??
  • ????????????????????????????{??
  • ?????????????????????????????????????this.times++;??
  • ?????????????????????????????????????if(times>=?5)??
  • ???????????????????????????????????????????????ClientConfig.webDebug=?true;??
  • ????????????????????????????}??
  • ????????????????????????????elseif(e.keyCode?==?Keyboard.SEARCH)??
  • ????????????????????????????{??
  • ??????????????????????????????????????
  • ????????????????????????????}??
  • ????????????????????????????else??if?(e.keyCode?==?Keyboard.HOME)?{??
  • ?????????????????????????????????????//Handle?Home?button.??
  • ????????????????????????????}??
  • ???????????????????}??
  • ?

    12、? 手機調試不方便怎么辦?設置手機代理,把ip指向電腦,這樣所有數據包就會通過電腦發送和接受,用電腦抓包調試。

    ?

    13、? 其他知識點:

    運行ios發行版ipa特有問題:

    1)uint和int的比較:int類型的-1大于uint類型的0;

    2)String(null) 依舊是null值,而不是字符串的"null"

    ?

    NativeApplication 的exit() 方法不會導致調度exiting 事件;

    android中任務管理器中結束應用也不會派發exit事件,ios中未知

    ios下通過任務管理器關閉app,app本身無法控制退出

    ??

    flash builder 編譯提示錯誤:Erroroccurred while packaging the application: Map failed

    解決辦法:一般清理一下項目就ok了

    ?

    stage.displayState =StageDisplayState.FULL_SCREEN

    設置全屏后立刻讀取stagewidth和stageheight是不準確的,需要延時到下一幀再讀取

    ?

    桌面 移動設備 api支持的差異http://help.adobe.com/en_US/air/build/WS144092a96ffef7cc16ddeea2126bb46b82f-8000.html

    adt 打包時目標參數詳解?http://help.adobe.com/zh_CN/air/build/WS901d38e593cd1bac1e63e3d128cdca935b-8000.html

    轉載于:https://www.cnblogs.com/zhepama/p/3473658.html

    總結

    以上是生活随笔為你收集整理的使用air进行移动app开发常见功能和问题(二)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。