用户名: 密码: 验证码: QQ--程序群:31736530 动画群:38836599
闪无忧
 
首 页 业界新闻 业界杂谈 Flash教程 Flash源码 Flash图书 Flash酷站 Flex & AIR 供求信息
   本栏目通告:   请大家多多关注AIR,欢迎大家踊跃投稿
当前位置 :首页>Flex-AIR>AIR资讯>列表

让Adobe AIR 程序离线运行(翻译)

[来源:zhuoqun.net | 作者:Dreamer | 时间:2008-04-04 | 点击:  | 收藏本文  【 】]

3.尝试加载XML文件(或者加载你需要的任何文件/数据)

现在程序可以确定连接状态了,我们的监听器函数将会相应地对isOnline变量做更改。注意onNetworkChange()方法很少将isOnline的值置反,处理这个的一种较好的方法就是同时访问一下服务器来确定连接状态。

现在NETWORK_CHANGE事件关联了很多东西,正如上面所说,当你从在线状态变成离线状态的时候会触发该事件,但是当你连接到VPN或其它状态改变的时候也会触发该事件。记住,服务器两次检查在线状态的时候可能会离线,这会使数据加载数据失败,导致程序显示为离线状态。希望下一个版本中的网络更新会改进这一过程。

现在NETWORK_CHANGE事件关联了很多东西,正如上面所说,当你从在线状态变成离线状态的时候会触发该事件,但是当你连接到VPN或其它状态改变的时候也会触发该事件。记住,服务器两次检查在线状态的时候可能会离线,这会使数据加载数据失败,导致程序显示为离线状态。希望下一个版本中的网络更新会改进这一过程。

以调试模式运行上面的代码,然后在连接状态和无连接状态观察控制台(Console)视图。


图2. 连接状态和无连接状态下的控制台视图

创建一个基于状态的程序

现在我们已经知道了连接状态而且仅仅需要我们的程序相应地作出响应。现在你要做的是将currentState属性绑定到isOnline变量来获得所需的效果或流程。

改变程序的状态

在这里我假定你很熟悉Flex 2中的绑定,所以对这些基础就一带而过了。这里我们要做的是根据isOnline的值切换状态。

[Code (snippet; AIROffline_Step3.mxml)]
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication    xmlns:mx="http://www.adobe.com/2006/mxml"
                  layout="absolute" creationComplete="init()"
                  currentState="{isOnline ? 'Online' : 'Offline'}">
[/Code]

你需要注意的是currentState 那一行。它告诉我们在线或离线状态的改变是基于isOnline变量的。很简单,是不是?现在让我们来创建各个状态。

[Code (snippet; AIROffline_Step3.mxml)]
   <mx:states>
      <mx:State name="Online">
         <mx:SetProperty name="status" value="Online"/>
      </mx:State>
      <mx:State name="Offline">
         <mx:SetProperty name="status" value="Offline"/>
      </mx:State>
   </mx:states>
[/Code]

在每个状态中,我们仅仅改变了WindowedApplication.status 的值来显示当前的状态。对于习惯图形化界面表示的你来说,可能想让我根据状态用灰色或全彩色来表示网络连接,好吧,我将添加一个状态条来满足你的图形化要求。接下来让我们处理数据。

管理数据

我们已经可以知道当前的状态是什么了,现在需要做的就是处理数据。首先让我们看一下需要做的事情以及想要的结果。

•如果是离线状态,加载本地数据文件。
•如果是在线状态,加载线上的数据文件并将其保存在本地,为将来离线加载做准备。(如果加载数据失败,就回过头来加载本地数据文件)
•如果网络状态从离线变成在线,就加载线上数据并重复上一步。
•结果:程序自动更新数据(通过绑定),而且不管状态如何数据一直是可用的。

大部分的代码都和上面的差不多,这里我只给出一些代码片断以便你更清楚地看到是哪里做了更改。

[Code (snippet; Script block; AIROffline_Step4.mxml)]
import flash.filesystem.*;
         private var localFile:File = File.appStorageDirectory.resolve("AIROffline/rooms.xml");
上一页 1 2 34 5 6 7 8 下一页
文章如果有错误或者缺少文件,请发邮件提交给我们
上一篇:摆脱浏览器限制-AIR系列应用
下一篇:AIR在光盘中的应用
Tags:     翻译 运行 程序 Room 状态 name 数据 private isOnline
>>> 最新评论:(共有 0 位网友发表了评论)      查看所有评论
  发表评论
用户名: 新注册) 密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
·本站发布内容均为客观表达作者观点,不代表闪无忧立场,请勿攻击和漫骂
·用户发表意见仅代表其个人意见,并且承担一切因发表内容引起的纠纷和责任
·本站管理人员有权在不通知用户的情况下删除不符合规定的评论信息或留做证据
·请客观的评价您所看到的资讯,提倡就事论事,杜绝漫骂和人身攻击等不文明行为
  Flex及AIR分类
  Flex资料   Flex动态
  Flex案例   Flex源码
  AIR资讯
  Flex相关
  什么是Flex   什么是AIR
  寻找Flex工作机会
  发布Flex工作机会
  热门文章
·AIR及Flex3之mp3播放器教程
·Adobe AIR教程范例分享及源文件下载
·让Adobe AIR 程序离线运行(翻译)
·HTML 與JavaScript也能實現Adobe AIR
·AIR热门应用-IM篇图文介绍
·AIR是什么
·摆脱浏览器限制-AIR系列应用
·70 个AIR 程序源码下载
·air-只打开一个window窗体的方法
·AIR的一些实例聚集地
·Earth Browser 3D AIR程序
关于我们 - 版权声明 - 网站地图 - 广告服务 - 联系我们 - 友情链接 - 用户注册
©CopyRight 2006-2008, 5UFlash.COM, Inc. All Rights Reserved
鲁ICP备06034971号