- 浏览: 192663 次
- 性别:
- 来自: 郑州
文章分类
最新评论
-
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 1710大部分flash网游,都是将资源文件分散在不同的swf或swc ... -
as3 彩票简单缩水算法及实现
2010-03-09 08:10 2787网上搜了一下找缩水算法的介绍,发觉大家都藏藏掖掖的。 以下 ... -
flash air 版 双色球小工具
2010-02-24 14:55 1391提供以下功能,专家预测、历史数据分析、机选号、智能缩水 ... -
flash 实现的多文件上传
2010-01-07 11:38 1092效果图如下: -
air2 实现的桌面助手工具
2009-12-18 13:25 1294air2 实现的桌面助手工具 运行环境为air2.0 ... -
自己编写的简易 mvc框架
2009-12-15 13:13 1023很简单,仅仅是想把界面和逻辑分开。 其实也只分开了vc两层, ... -
Flex学习笔记_06 使用行为对象和动画效果_模糊、发光效果
2009-10-13 16:25 14576.3.1 模糊效果和发光效果的运用实例 Blur 模糊效果 ... -
Flex学习笔记_06 使用行为对象和动画效果_ 放缩\调整大小效果
2009-10-13 16:23 12926.3.2 放缩效果和调整大小效果 Zoom 放缩效果 对对象 ... -
帮同事作的网站状态监测air
2009-09-01 14:32 1056使用urlloader读取网站信息,来判断网站是否挂掉。 并 ... -
可运行的Flex+Spring+BlazeDS实例
2009-08-10 08:50 1956如题 后台代码,也可以使用hibernate. -
flash 拍照并上传(java)
2009-08-03 16:03 13741请下载最新更新版。 2010-1-7更新: 支持在线 ... -
小网络游戏开发
2009-06-20 00:10 1510-----------------------2009-7-6 ... -
实时数据采集展示
2009-06-16 15:18 1656思路是这样的, 通过服务端程序添加数据,在客户端用f ... -
转一个工作流程设计器
2009-05-30 10:01 1119网上找的 功能一般, 仅供参考 -
Advanced.ActionScript 3.Animation 翻译
2009-04-01 13:50 1174想学FLEX 或者 ActionScript 3.0 的童鞋们 ... -
播放器界面+Air程序
2009-03-19 20:50 1072功能没有作的在完善,只要了主要部分的代码. 这段时间有点 ... -
as3 mp3播放器中波谱显示的实现
2009-03-16 16:12 2140package{ import flash.display. ... -
Flex之模块化
2009-02-05 17:41 1286如果做一个很大的Flex程序,比如程序文件有2,3M,一次性下 ... -
自己作的一个flash游戏雏形
2008-12-18 16:35 1167自己作的一个flash游戏雏形 实现地图移动,角色, 只是 ... -
网上找的一个换装游戏
2008-12-15 14:40 1608网上找的一个换装游戏 比较可爱
相关推荐
Flex AIR工程自动更新测试涉及到的是Adobe Integrated Runtime (AIR)应用程序的升级机制,这对于保持软件的最新状态和提供无缝用户体验至关重要。在Flex开发中,我们利用Adobe AIR SDK来创建跨平台的桌面应用程序。...
Flex4和Adobe AIR是开发跨平台桌面应用的框架和技术,它们允许开发者利用ActionScript和Flash...如果你希望深入学习或应用这些技术,可以从了解Flex4和AIR的基础开始,然后逐步探索多窗口编程和自动更新的实现细节。
NetBackup AIR(Automatic Image Replication)是Veritas NetBackup中的一项功能,用于在不同地理位置之间自动复制备份映像,以实现灾难恢复和业务连续性。本操作手册详细介绍了如何配置和执行NetBackup AIR,确保在...
10. **用户界面和功能设计**: AIR应用可以利用ActionScript的强大功能创建丰富的交互式用户界面,同时实现复杂的功能逻辑。 以上是对“独立air应用程序打包的附件”这一主题的详细解释,涵盖了从开发、打包到部署的...
综上所述,Adobe AIR应用开发涉及多个关键环节,从理解AIR概念、设置开发环境,到使用FlexBuilder或Flex SDK进行开发,再到最终的测试与发布,每一步都需要细致的操作和深入的理解。通过本指南的学习,开发者将能够...
EC20和Air724UG是两种常见的4G/LTE模块,用于实现无线通信和数据传输。 EC20模块是由Quectel公司生产的,它支持多种网络制式,包括LTE-TDD/LTE-FDD/UMTS/HSPA+/GSM,提供高速的数据传输能力,适用于物联网设备的...
Adobe AIR(Adobe Integrated Runtime)是一种由Adobe Systems开发的跨平台运行环境,支持使用HTML、CSS、JavaScript以及Flex等技术开发的应用程序,能够在桌面操作系统上运行。此文档主要介绍如何使用HTML和AJAX来...
首先,AIR 2.0引入了NativeProcess API,这是一个关键的更新,它允许AIR应用程序启动、监控和通信与本地操作系统上的原生进程。通过这个API,开发者可以创建一个AIR应用,该应用能够执行操作系统级别的命令,如打开...
标题中的“AS Flash AIR 天气预报桌面应用程序”是指使用Adobe Flash ActionScript(AS)语言开发的一款基于Adobe Integrated Runtime(AIR)平台的桌面应用。这款应用的主要功能是提供天气预报服务,用户可以在桌面...
- **使用 Flex AIR 组件**: Flex 提供了一系列专门设计用于 AIR 应用的组件,这些组件可以帮助开发者快速构建界面并实现复杂的功能。 - WindowedApplication 组件: 用于创建窗口化应用程序的基础组件。 - HTML ...
12. 更新AIR应用程序:了解如何更新已经发布到市场的应用程序也是开发者必须掌握的知识。这包括使用Adobe AIR的更新框架以及如何为应用程序提供自定义更新用户界面。 13. 本地化AIR应用程序:对于面向全球用户的...
标题中的“X98-Air Ⅱ-自动刷WIN8 bios工具.zip”指的是一个针对X98-Air Ⅱ设备的BIOS更新工具,该工具被设计用来自动化升级设备的BIOS(基本输入输出系统)到Windows 8兼容的版本。BIOS是计算机硬件与操作系统之间...
`Air`的工作原理大致如下: 1. **监听文件系统**:`Air`会持续监控项目目录中的文件变动,一旦检测到源代码有修改,就会触发重新编译的流程。 2. **快速编译**:`Air`采用了高效的编译策略,确保在代码改动后能...
"PDA / wince 自动更新"这个主题涉及到的是如何在运行Windows CE操作系统的PDA设备上实现软件的自动更新机制。 一、WinCE系统更新基础 Windows CE与桌面版Windows系统不同,它是一个模块化的操作系统,可以根据设备...
从提供的文件信息来看,文档包含了大量的专业术语和组件描述,这表明它是一份关于iPad Air 2的电路原理图的详细文档。为了满足您对知识点的要求,我将根据标题、描述、标签以及提供的部分内容来详细解释其中的要点。...
4G模块在人工智能领域有着广泛的应用,如物联网设备的数据传输、智能监控系统的远程通信、自动驾驶车辆的实时信息交互等。了解并掌握AIR724UG的设计要点,能够帮助工程师在项目中实现高效、可靠的4G通信功能。通过...
12. **应用更新**:Adobe AIR支持自动更新机制,开发者可以配置应用检测并下载新版本,简化用户的升级流程。 13. **源码和工具**:博客中提到的“源码”可能是指提供了一些示例代码,帮助开发者理解如何设置这些...
- **编写代码**: 编写 ActionScript、HTML 或 JavaScript 代码来实现应用程序的功能。 - **测试程序**: 在 Flex Builder 内部或外部环境中测试程序。 - **打包程序**: 将应用程序打包成 AIR 安装包。 - **使用 ...
AIR2.0 调用应用程序 修正AIR2.0 调用应用程序 修正AIR2.0 调用应用程序 修正AIR2.0 调用应用程序 修正AIR2.0 调用应用程序 修正AIR2.0 调用应用程序 修正AIR2.0 调用应用程序 修正AIR2.0 调用应用程序 修正 ...
《iPad AIR2维修原理图与PCB位置图详解》 在现代科技日新月异的今天,智能手机,尤其是苹果公司的iPad系列,已经成为人们日常生活和工作中不可或缺的设备。然而,随着设备使用时间的增长,难免会出现一些硬件问题,...