-

AIR Beta 2.0与AIR Beta3.0的差异和AIR Beta 3.0新增API

Posted by wpm on Dec 28, 2008 in AIR

自从Adobe将AIR由Beta 2.0升级到Beta 3.0(下称Beta 2.0、Beta 3.0),就发现了越来越多的朋友在Beta2.0下面编写的程序,却无法在Beta 3.0下面运行。我在这里总结一下Beta 3.0新增了哪些API?和Beta 2.0与Beta 3.0 之间的差异! 升级你的Beta 2.0到Beta 3.0的步骤: 首先需要修改的是application.xml这个文件。 1、Change xmlns to “http://ns.adobe.com/air/application/1.0.M6” 2、Added <allowBrowserInvocation> as an element of <application> 3、Added <icon> as an element of <fileType> 4、Renamed <title> –> <name> 5、Renamed <name> –> <filename> 6、Renamed <handleUpdates> –> <customUpdateUI> and type is xs:boolean 7、appId was a property within the <application> [...]

 
-

Skins and Themes for Flex and AIR

Posted by wpm on Dec 28, 2008 in Resources








分享一个提供FLEX和AIR主题皮肤下载的网站

http://scalenine.com/

Tags: , , ,

 
2

Foundation Flex for Designers

Posted by wpm on Dec 27, 2008 in Articles

本站下载:[download id="5"] About the Authors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi About the Technical Reviewer . . . . [...]

Tags: ,

 
-

RIA开发平台架构图

Posted by wpm on Dec 27, 2008 in Articles

Adobe官方提供的RIA平台开发架构图,比较清晰…. 完整PDF版,点击这里下载:[download id="3"] Table of Contents 2  About this guide 3  How to Use This Guide 4 – 5  Adobe Flash Platform for RIAs 6 – 57  ActionScript reference guide 58 – 59  Notes Back  Quick URL reference

Tags:

 
-

FLEX内存释放优化原则

Posted by wpm on Dec 27, 2008 in Flex

1. 被删除对象在外部的所有引用一定要被删除干净才能被系统当成垃圾回收处理掉; 2. 父对象内部的子对象被外部其他对象引用了,会导致此子对象不会被删除,子对象不会被删除又会导致了父对象不会被删除; 3. 如果一个对象中引用了外部对象,当自己被删除或者不需要使用此引用对象时,一定要记得把此对象的引用设置为null; 4. 本对象删除不了的原因不一定是自己被引用了,也有可能是自己的孩子被外部引用了,孩子删不掉导致父亲也删不掉; 5. 除了引用需要删除外,系统组件或者全局工具、管理类如果提供了卸载方法的就一定要调用删除内部对象,否则有可能会造成内存泄露和性能损失; 6. 父对象立刻被删除了不代表子对象就会被删除或立刻被删除,可能会在后期被系统自动删除或第二次移除操作时被删除; 7. 如果父对象remove了子对象后没有清除对子对象的引用,子对象一样是不能被删除的,父对象也不能被删除; 8. 注册的事件如果没有被移除不影响自定义的强行回收机制,但有可能会影响正常的回收机制,所以最好是做到注册的事件监听器都要记得移除干净。 9. 父对象被删除了不代表其余子对象都删除了,找到一种状态的泄露代码不等于其他状态就没有泄露了,要各模块各状态逐个进行测试分析,直到测试任何状态下都能删除整个对象为止。 内存泄露举例: 1. 引用泄露:对子对象的引用,外部对本对象或子对象的引用都需要置null; 2. 系统类泄露:使用了系统类而忘记做删除操作了,如BindingUtils.bindSetter(),ChangeWatcher.watch()函数时候完毕后需要调用ChangeWatcher.unwatch()函数来清除引用 ,否则使用此函数的对象将不会被删除; 类似的还有MUSIC,VIDEO,IMAGE,TIMER,EVENT,BINDING等。 3. 效果泄露:当对组件应用效果Effect的时候,当本对象本删除时需要把本对象和子对象上的Effect动画停止掉,然后把Effect的target对象置null; 如果不停止掉动画直接把 Effect置null将不能正常移除对象。 4. SWF泄露:要完全删除一个SWF要调用它的unload()方法并且把对象置null; 5. 图片泄露:当Image对象使用完毕后要把source置null;(为测试); 6. 声音、视频泄露: 当不需要一个音乐或视频是需要停止音乐,删除对象,引用置null; 内存泄露解决方法: 1. 在组件的REMOVED_FROM_STAGE事件回掉中做垃圾处理操作(移除所有对外引用(不管是VO还是组件的都需要删除),删除监听器,调用系统类的清除方法) 先remove再置null, 确保被remove或者removeAll后的对象在外部的引用全部释放干净; 2. 利用Flex的性能优化工具Profile来对项目进程进行监控,可知道历史创建过哪些对象,目前有哪些对象没有被删除,创建的数量,占用的内存比例和用量,创建过程等信息; 总结:关键还是要做好清除工作,自己设置的引用自己要记得删除,自己用过的系统类要记得做好回收处理工作。 以上问题解决的好的话不需要自定义强制回收器也有可能被系统正常的自动回收掉。

Tags: ,

 
 
2

分享几个Flex常用到的小技巧

Posted by wpm on Dec 27, 2008 in Flex

在这里给大家分享一下Flex里面常需要用到方法,很实用哦 No.1  拷贝内容到剪贴板 System.setClipboard(strContent); No.2 拷贝 ArrayCollection: //dummy solution( well, it works ) var bar:ArrayCollection = new ArrayCollection(); for each ( var i:Object in ac ){ bar.addItem( i ); } // fantastic ! // var bar:ListCollectionView = new ListCollectionView( ListCollectionView( ac ).list ); No.3 打开一个网页链接: navigateToURL(new URLRequest(‘http://ntt.cc’), ‘_blank’ No.4 刷新当前页面(网页): navigateToURL(new URLRequest(“javascript:location.reload();”),”_self”) No.5 关闭浏览器: navigateToURL(new URLRequest(“javascript:window.close()”),”_self”); [...]

Tags: , ,

 
2

Flex Application 初始化顺序

Posted by wpm on Dec 26, 2008 in Flex

preloader->systemManager->FlexApplication started…
然后才是

preinitialize
在所有的初始化之前触发,没有子组件的定义,但是可以引用组件的变量.

initialize
当所有子组件生成完成后触发,在这个时间点还没有组件被渲染出来.

creationComplete
组件定义完成并已经在显示列表.

applicationComplete
所有的组件初始化完成并显示.
首 先介绍一下SystemManager. SystemManager是Flex应用的主控者, 它控制着应用窗口, Application实例, 弹出窗口, cursors, 并管理着ApplicationDomain中的类. SystemManager是FlashPlayer实例化的第一个类, 它存储了主应用窗口的大小和位置信息, 保存其子组件比如:浮动弹出窗口和模态窗口的痕迹. 通过SystemManager可以获得内嵌字体,样式和document对象.
自定义的可视化组件(UIComponent的子类)只有在调用过addChild()后, 才会有一个SystemManager赋给他们, 之前是Null. 所以在自定义可视化组件的构造函数中不要使用SystemManager.

通常, Application对象创建时, 发生如下事件:
1. 实例化Application对象
2. 初始化Application.systemManager
3. Application在初始化过程之前, 派发预初始化事件.
4. 调用createChild(). 此时, 所有应用组件被创建, 所有组件的createChild()被调用.
5. Application派发初始化事件, 表明所有的组件初始化完毕.
6. 派发creationComplete事件
7. Application对象添加到显示列表中
8. 派发applicationComplete事件

….

Tags:

 
1

Flex Builder 快捷键

Posted by wpm on Dec 26, 2008 in Flex

Ctrl-F11: 执行(Run) F11: 调试(Debug) Ctrl-Alt-Down: 重复目前所在编辑列(Repeat current line ) Alt-Up: 移动本列,或选择列往上移动(Move line (or selection) up ) Alt-Down: 移动本列,或选择列下往移动(Move line (or selection) down ) Ctrl-Click: 移至定义区(Go to definition (also F3) ) Ctrl-D: 删除本列(Delete line ) Alt-/: 文字自动完成(Word completion (cycles through possible matches)) Ctrl-Up: 卷轴向上(Scroll up ) Ctrl-Down: 卷轴向下(Scroll Down ) Shift+F2:弹出帮助窗体,显示选中标签的上下文帮助 F1:在IDE内显示上下文帮助,当你不知道怎么使用一个类或方法时可以试试这个 F3:显示当前选中标签的类定义 CTRL+0:在代码视窗显示大纲 CTRL+SHIFT+C:加注释

Tags: , ,

 
5

收集的一些电驴资源,方便大家下载学习

Posted by wpm on Dec 26, 2008 in Uncategorized

电驴上有很多有用的资源哦,我在这里收集起来,方便大家下载。:)

Tags: