- 浏览: 189799 次
- 性别:
- 来自: 郑州
文章分类
最新评论
-
itboy1980:
LZ,有没有使用说明啊,后台jsp怎么使用呢,谢谢
flash 拍照并上传(java) -
jinhongda:
webview 项目服务端gzip实现 -
欢乐豆:
picksun 写道问题解决了,原来是缺少JPEGEncode ...
flash 拍照并上传(java) -
lj88811498:
灰常感谢
flash 拍照并上传(java) -
jclarry:
lz可以给我一个demo吗只要简单的调用页面就可以,我怎么实现 ...
WebView项目中PhoneGap插件使用细节startActivityForResult
实现AIR应用自动更新的大致原理,以下是类文件和调用示例:
package Neo
{
import flash.display.*;
import flash.filesystem.*;
import flash.desktop.Updater;
import flash.events.*;
import flash.net.*;
import flash.xml.*;
import flash.text.TextField;
import flash.utils.ByteArray;
import flash.events.IOErrorEvent;
public class AIRUpdater extends Sprite
{
public var version:String;
public var updataURL:String;
private var updataRequest:URLRequest;
private var updataLoader=new URLLoader();
private var newVersion:String;
private var airURLString:String;
private var urlReq:URLRequest;
private var urlStream:URLStream;
private var fileData:ByteArray;
private var baseSprite:Sprite=new Sprite();
private var tipText:TextField=new TextField();
private var btYes:Sprite=new Sprite();
private var btYesText:TextField=new TextField();
private var btNo:Sprite=new Sprite();
private var btNoText:TextField=new TextField();
public function AIRUpdater():void
{
baseSprite.graphics.beginFill(0×000000,0.5);
baseSprite.graphics.lineStyle(8,0×000000,0.1);
baseSprite.graphics.drawRoundRect(0,0,360,160,10);
baseSprite.graphics.endFill();
/*add base*/
tipText.width=300;
tipText.height=30;
tipText.x=tipText.y=30;
tipText.autoSize=”center”;
tipText.textColor=0xFFFFFF;
tipText.text=”You must update your AIR Application now,ok?”;
baseSprite.addChild(tipText);
/*add button*/
btYes.graphics.beginFill(0×000000,0.5);
btYes.graphics.lineStyle(1,0×000000,0.1);
btYes.graphics.drawRoundRect(0,0,36,20,10);
btYes.graphics.endFill();
btYesText.width=36;
btYesText.text=”Yes”;
btYesText.autoSize=”center”;
btYesText.textColor=0xFFFFFF;
btYes.addChild(btYesText);
btNo.graphics.beginFill(0×000000,0.5);
btNo.graphics.lineStyle(1,0×000000,0.1);
btNo.graphics.drawRoundRect(0,0,36,20,10);
btNo.graphics.endFill();
btNoText.width=36;
btNoText.text=”No”;
btNoText.autoSize=”center”;
btNoText.textColor=0xFFFFFF;
btNoText.selectable=btYesText.selectable=false;
btNo.addChild(btNoText);
btYes.x=100;
btYes.y=100;
btNo.x=210;
btNo.y=100;
btYes.buttonMode=btNo.buttonMode=true;
baseSprite.addChild(btYes);
baseSprite.addChild(btNo);
}
/*Function For Update Application*/
public function updateMyApp():void
{
updataRequest=new URLRequest(updataURL);
updataLoader.load(updataRequest);
updataLoader.addEventListener(IOErrorEvent.IO_ERROR,errorHandler);
updataLoader.addEventListener(Event.COMPLETE,loaderCompleteHandler);
}
/*loaderCompleteHandler*/
private function loaderCompleteHandler(event:Event):void
{
try {
var result:XML=new XML(updataLoader.data);
if (version != result.version)
{
newVersion=result.version;
airURLString=result.lastpublic;
trace(”马上更新到最新版吗?” + “有新的更新”);
addChild(baseSprite);
baseSprite.x=(stage.stageWidth-baseSprite.width)/2;
baseSprite.y=(stage.stageHeight-baseSprite.height)/2;
btYes.addEventListener(MouseEvent.CLICK,updateBtHandler);
btNo.addEventListener(MouseEvent.CLICK,removeBtHandler);
}
} catch (e:TypeError) {
trace(”Updata Application Error:Could not parse the XML file.”);
}
}
/*errorHandler*/
private function errorHandler(e:IOErrorEvent):void
{
trace(”Updata Application Error:Had problem loading the XML File.”);
}
private function updateBtHandler(event:MouseEvent):void
{
urlReq=new URLRequest(airURLString);
urlStream=new URLStream ;
fileData=new ByteArray ;
urlStream.addEventListener(Event.COMPLETE,loaded);
urlStream.load(urlReq);
}
private function removeBtHandler(event:MouseEvent):void
{
removeChild(baseSprite);
}
private function loaded(event:Event):void
{
urlStream.readBytes(fileData,0,urlStream.bytesAvailable);
writeAirFile();
}
private function writeAirFile():void
{
var file:File=File.desktopDirectory.resolvePath(”lastPublish.air”);
var fileStream:FileStream=new FileStream ;
fileStream.addEventListener(Event.CLOSE,fileClosed);
fileStream.openAsync(file,FileMode.WRITE);
fileStream.writeBytes(fileData,0,fileData.length);
fileStream.close();
}
private function fileClosed(event:Event):void
{
trace(”The AIR file is written.”);
var updater:Updater=new Updater ;
var airFile:File=File.desktopDirectory.resolvePath(”lastPublish.air”);
updater.update(airFile,newVersion);
}
}
}
调用示例:
import flash.display.*;
import flash.filesystem.*;
import flash.desktop.Updater;
import flash.events.*;
import flash.net.*;
import flash.xml.*;
import flash.utils.ByteArray;
import flash.events.IOErrorEvent;
import Neo.AIRUpdater;
var aupSample:AIRUpdater=new AIRUpdater();
aupSample.version=”alpha1″;
aupSample.updataURL=”http://localhost/testUpdate/version.xml”;
aupSample.updateMyApp();
addChild(aupSample);
用于判断版本的XML结构示意:
<?xml version=”1.0″ encoding=”utf-8″?>
<example>
<version>alpha2</version>
<lastpublic>http://localhost/testUpdate/main.air</lastpublic>
</example>
发表评论
-
flash 远程加载资源文件及引用
2010-05-28 17:02 1675大部分flash网游,都是将资源文件分散在不同的swf或swc ... -
as3 彩票简单缩水算法及实现
2010-03-09 08:10 2692网上搜了一下找缩水算法的介绍,发觉大家都藏藏掖掖的。 以下 ... -
flash air 版 双色球小工具
2010-02-24 14:55 1339提供以下功能,专家预测、历史数据分析、机选号、智能缩水 ... -
flash 实现的多文件上传
2010-01-07 11:38 1051效果图如下: -
air2 实现的桌面助手工具
2009-12-18 13:25 1246air2 实现的桌面助手工具 运行环境为air2.0 ... -
自己编写的简易 mvc框架
2009-12-15 13:13 981很简单,仅仅是想把界面和逻辑分开。 其实也只分开了vc两层, ... -
Flex学习笔记_06 使用行为对象和动画效果_模糊、发光效果
2009-10-13 16:25 13876.3.1 模糊效果和发光效果的运用实例 Blur 模糊效果 ... -
Flex学习笔记_06 使用行为对象和动画效果_ 放缩\调整大小效果
2009-10-13 16:23 12566.3.2 放缩效果和调整大小效果 Zoom 放缩效果 对对象 ... -
帮同事作的网站状态监测air
2009-09-01 14:32 1012使用urlloader读取网站信息,来判断网站是否挂掉。 并 ... -
可运行的Flex+Spring+BlazeDS实例
2009-08-10 08:50 1916如题 后台代码,也可以使用hibernate. -
flash 拍照并上传(java)
2009-08-03 16:03 13694请下载最新更新版。 2010-1-7更新: 支持在线 ... -
小网络游戏开发
2009-06-20 00:10 1464-----------------------2009-7-6 ... -
实时数据采集展示
2009-06-16 15:18 1619思路是这样的, 通过服务端程序添加数据,在客户端用f ... -
转一个工作流程设计器
2009-05-30 10:01 1089网上找的 功能一般, 仅供参考 -
Advanced.ActionScript 3.Animation 翻译
2009-04-01 13:50 1148想学FLEX 或者 ActionScript 3.0 的童鞋们 ... -
播放器界面+Air程序
2009-03-19 20:50 1028功能没有作的在完善,只要了主要部分的代码. 这段时间有点 ... -
as3 mp3播放器中波谱显示的实现
2009-03-16 16:12 2102package{ import flash.display. ... -
Flex之模块化
2009-02-05 17:41 1248如果做一个很大的Flex程序,比如程序文件有2,3M,一次性下 ... -
自己作的一个flash游戏雏形
2008-12-18 16:35 1136自己作的一个flash游戏雏形 实现地图移动,角色, 只是 ... -
网上找的一个换装游戏
2008-12-15 14:40 1567网上找的一个换装游戏 比较可爱
相关推荐
主要是用于flex AIR工程远程自动检测新版本更新功能。 主要对比是<version>v4中version的版本,如v4
NetBackup AIR 自动映像复制操作手册,详细的操作步骤及截图。
在移动设备上安装 AIR 和 AIR 应用程序 更新移动 AIR 应用程序 第 8 章: 开发针对电视设备的 AIR 应用程序 设备功能 用于电视的 AIR 应用程序设计注意事项 开发用于电视的 AIR 应用程序的工作流程 针对 TV 应用...
版本Flex4.6 Air3.1,项目下载下来就可以用。项目打包安装后,可以同时开多窗,也可以自动更新。本来有效果图的,但是传不上来
STM32+EC20和STM32+Air724UG开发板原理图和PCB
AIR2.0 调用应用程序 修正AIR2.0 调用应用程序 修正AIR2.0 调用应用程序 修正AIR2.0 调用应用程序 修正AIR2.0 调用应用程序 修正AIR2.0 调用应用程序 修正AIR2.0 调用应用程序 修正AIR2.0 调用应用程序 修正 ...
AIR2.0调用应用程序AIR2.0调用应用程序AIR2.0调用应用程序AIR2.0调用应用程序AIR2.0调用应用程序AIR2.0调用应用程序AIR2.0调用应用程序
AIR应用开发中文指南(BETA2).pdf
使用HTML和AJAX开发AIR应用程序的中文帮助文档,很不错!
苹果的ipad air 2的电路原理图,不含点位图和印刷电路板的图。
acmeair, Acme Air示例应用程序的Java实现 Acme Air示例和基准这个应用程序展示了一个名为"acme air"的虚拟航空公司的实现。 应用程序是用一些重要的业务需求构建的: 在每一天扩展到数十亿个 Web API 调用的能力,...
使用 Adobe Flex 3 开发 Adobe AIR 1.1 应用程序
iPad-AIR2维修原理图PCB位置图(PDF格式),是维修图,有PCB位置图,是PDF格式的,可用来维修手机,学习手机原理等。有些图纸有些页可能有残缺。
iPad 5 air维修原理图PCB位置图(PDF格式),是维修图,有PCB位置图,是PDF格式的,可用来维修手机,学习手机原理等。有些图纸有些页可能有残缺。
资源名称:Android移动应用开发 基于Adobe AIR内容简介:《Android移动应用开发:基于AdobeAIR》共四部分19章,主要介绍如何使用AdobeAIR开发Android移动应用,深入讲解Android移动开发特有的各种主题,力图帮助读者...
独立air应用程序打包的附件..................
苹果电脑,Apple MacBook Air A1369的电路原理图,供有需要的人下载。
flash as AIR 天气预报 桌面应用程序 内含源文件
Fresh Air-Android Fresh Air是一个应用程序更新库。 它旨在检查远程位置是否有应用程序更新,如果有可用更新,它会提示用户升级应用程序。 当新版本Fresh Air-Android Fresh Air是一个应用程序更新库。 它旨在检查...
Adobe Integrated Runtime (AIR) 是一个跨操作系统的运行时,利用现有的Web 开发技术 (Flash,Flex,HTML,JavaScript,Ajax)来构建富Internet 应用程序并部署为桌面应用 程序。 AIR 支持现有的Web 技术如Flash,...