AIR应用描述文件详解

Air应用描述文件是设置AIR应用各项基本属性的一个XML文件.在使用FLEX开发时,它位于”项目文件夹/src/主文件名-app.xml”;在使用Flash CS3 开发时也会在创建AIR项目时自动生成,可以通过菜单Commands > AIR - Application and Installer Settings来可视化编辑,也可以手动编辑该XML文档. 应用描述文件包含AIR应用的各项属性,影响整个AIR应用,如它的名称,版本,版权,等等。理论上,应用描述文件可使用任意文件名。当我们使用Flash cs3创建一个空文件,并使用默认设置,应用描述文件会自动更名为application.xml并放进AIR项目的一个特殊目录中。

Flash

饭否AIR客户端发布(1.6+)

在线安装地址 点击下载饭否AIR客户端1.6 最新AIR环境下载 参考源代码下载 6.26更新支持最小化到系统托盘:点击最小化按钮不再占据任务栏,而是最小化到系统托盘. 感谢支持. 下载地址:点击下载饭否AIR客户端1.7 最新AIR环境下载

Flash / 作品

AIR的Http basic验证

flex3或者FLASHcs3开发AIR中如何与需要Http basic验证的web通信?比如饭否http://fanfou.com/home 用户名中有@符号,如果直接访问http://“+loginName+”:”+loginPass+”@api.fanfou.com/statuses/update.xml的话会ioErr的.曾经在蓝色理想提问过,等到现在都没回复,网络上也搜索过,大多都是讲如何配置服务器端验证,而不是讲客户端如何登陆……有人提问C#和JAVA的登陆方法, 但是都没有回复,唯一可用的信息是VBs和Js里的方法,ajax实现起来很容易,xml的open方法的参数里就有user和pwd信息。 去年在flex代码里一条一条扫描,发现urlRequest里有个setLoginCredentials方法,加上urlR.setLoginCredentials(loginName,loginPass);这行就可以发送用户验证信息了 现在新版的AIR发布后,这个方法又废弃了.由于我一直没时间去修改我去年的饭否AIR客户端,所以也没关心这事.今天去官网查了个究竟.取而代之的方法:

Flash

Flash文件格式说明

SWF文件头 字段 类型 备注 标识 8位 标识字节: F代表未压缩 C代表已压缩(SWF6以后的版本特有) 标识 8位 代表W 标识 8位 代表S 版本号 8位 代表SWF文件的版本,比如0x06代表SWF6 文件长度 32位 整个文件的所占的字节数 帧大小 RECT结构 SWF场景的大小,单位为1twip(1/20像素) 帧速度 16位 帧数 16位 影片总的帧数目 文件头以三个标识符开始,他们不是0x46, 0x57, 0x53 (“FWS”)就是0x46,0x57, 0x43 (“CWS”).一个FWS标识表示该文件是未压缩文件.CWS标识表示整个文件,在前八个字节,也就是文件长度字段之后所有的内容,都是开放标准 ZLIB压缩过的.用ZLIB库的数据格式,在Request for Comments (RFCs) 1950到1952文档中有所描述.CWS仅在SWF6以后才允许使用. 在标识符之后的一个字节是版本号.这个版本号不是一个ASCII字符,而是一个8位的数字.例如,SWF4文件的版本号是0x04,不是ASCII字符”4”(0x35).

Flash

as3载入影片中TypeError:Error #1009:无法访问空对象引用的属性或方法

今天遇到的一个问题: 一个swf文件,要在主文件中来载入这个swf,但是却始终遇到如下问题: 当执行loadSwf(“xxxx.swf”)后报错TypeError: Error #1009: 无法访问空对象引用的属性或方法。 载入代码如下: private function loadMainSwf(url):void { var urlR:URLRequest=new URLRequest(url); containtLoader.unload(); containtLoader.load(urlR); containtLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,loadHandler); containtLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,loadCompHandler); } private function loadHandler(e:ProgressEvent):void { gLoad=e.target.bytesLoaded; gAll=e.target.bytesTotal; per=Math.floor(gLoad / gAll * 100); percent=per + “%”; perString.text=percent; } private function loadCompHandler(e:Event):void { containtLoader.contentLoaderInfo.removeEventListener(ProgressEvent.PROGRESS,loadHandler); containtLoader.contentLoaderInfo.removeEventListener(Event.COMPLETE,loadCompHandler); addChild(containtLoader); }

Flash

as3中Error#2037的原因

前天遇到这个错: Error: Error #2037: 函数调用序列不正确,或前面的调用不成功。 at flash.media::Sound/_load() at flash.media::Sound/load() at org.mousebomb.media.musicPlayerV4::Mp3Container/loadMp3() at org.mouse...

Flash

[转]Array()中的秘密

昨天在调试YouYeeTree类的时候总是发现子项显示的数目不对,当时就很郁闷,为什么我的数据声明正确但是显示出来的数目总是不对呢?一下是数据声明代码: var my_array:Array=new Array();my_array[0]=new Object();my_array[1]=new Object();trace(Array(my_array).length)//output 1

Flash

[转]回收FLASHPLAYER内存资源

架的时候遇到了内存资源的问题,一开始我就使用YouYee Player 来进行测试,新加入的Browser用来帮助YouYee Player浏览播放列表,因为基于新框架的设计的原因,所有的弹出窗口方式都模拟了Flex中的机制,利用一个PopUpManager来实现,经过对内存的反应测试反复开启关闭Browser内存剧增,大约每执行一次这样的操作就会消耗400K-500K的内存,虽然Flash Player内部有自动的垃圾回收器,但是却一直没有看到效果。实际上PopUpManager的执行机制:声明创建一个新的对象,再将其添加到制定的层(舞台),当该对象关闭的时候监听到事件,把其从舞台移除,并且标记为null。 理论上这样的机制就能让垃圾回收器把废置的Browser回收掉,但是为什么随着操作的进行,内存确完全没有降低呢?理论上我把所有的引用都删除了才对。带着这些问题我查找了许多资料,最后在官方找到了Resource management strategies in Flash Player 9这篇文章,表面上文章只是介绍了垃圾回收的一些机制,并没有涉及到具体的方法,对Sprite类的回收根本就是没有提及,但是里面有一段文字强调了,使用弱引用,在对舞台设置监听的时候使用弱引用,这样可以帮助垃圾回收器进行回收。我一下子想起来实际上框架中的很多组件都对舞台进行了监听,好在他们是利用StageProxy这个代理类来进行监听的,所以我只要把StageProxy这个类中的监听方法写成弱引用,那么问题就解决了。 最后重新进行测试,结果令人满意,内存在增长了一段时间后又开始回落,因为垃圾回收器开始工作了。所以对于Sprite(DisplayObject)类的删除应当注意如下:1、先利用removeChild将其移出舞台。2、删除所有的引用,也就是说把其设置为null,而不是使用Delete,Delete仅对动态成员有效。3、注意所有的Stage监听器,把他们注销,最好的方法是一开始注册监听器的时候就指定为弱引用。

Flash

用Talking Photo 制作会说话的照片

Flash

新版博客制作

博客被广告给淹没了……我这个无辜的可怜人能怎么办呢?pjblog功能强大,不过用着用着发现有很多不适合我的地方,我决定自己搞博客程序接下来一段时间就很少更新这个博客了

个人相关
1…7891011…14