1月17日
Flex开源框架汇总
Cairngorm (download)
Cairngorm是一个最早最为成熟的FLEX框架,现在已归为ADOBE门下.
PureMVC (download)
它其实是一个ActionScript 3框架,不像Cairngorm,它并不是针对FLASH,FLEX或者其它ADOBE AS3.0类。它是一个用于开发基于FLASH的AS 3.0的任何程序.
Model-Glue: Flex (download)
Model-Glue是一种简单的MVC的FLEX框架,Model-Glue拥有COLDFUSION接口.它相比以上两款更为轻巧.
Foundry (download)
ServeBox Foundry ( sbasfoundry )是一个ActionScript 3 / Java框架针对Flex 2应用开发者.
Guasax Flex Framework (download)
Guasax是一个易用的程序框架,为保证新老FLEX应用的扩展.
ARP (download)
ARP (Ariaware RIA Platform)是一个基于ActionScript的框架,它是一个Open Source Flash 项目.
Flest Framework (download)
Flest 是一个ActionScript3 / Flex框架.
以上的框架可以从EasyMVC, Adobe FAST 和 Joeberkovitz's framework签出.
其它的一些还有
FlexUnit (一个用于ActionScript 3单元测试框架)
AS3CoreLib (一个 ActionScript 3.0 库包含强大的JSON 的包)
Granite DS (一个免费开源的,可以替代Adobe Data Ser ......
在.net中,我们可以用"层"来布局,实现控件的上下重叠。
在flex里貌似是没这个概念的,flex按默认是认为先定义的在下层,后定义的在上层,不论是事先定义的控件,还是代码动态生成的控件,都是先来居下。
但是flex有自己的调整函数,总算是让我查到了。
容器名.setChildIndex(displayObject,int)就是调整这个容器下所有控件(或子容器)的顺序的函数,既然flex有先来在下的原则,那么用这个自然也能调整层之间的布局了。
举个例子吧:
如果要把最下层的调到最上层,用 容器名.setChildIndex(容器名.getChildAt(0),容器名.numChildren)
最上层的调到最下层 容器名.setChildIndex(容器名.getChildAt(容器名.numChildren-1),0)
这样就可以解决动态生成控件时老是被原来控件盖住的问题了!
引用于:http://www.cnblogs.com/felixfang/archive/2009/03/27/1423457.html
还有一种简单的方法,就是直接调用组件自带的方法addChildAt(),
在组件实例化或动态加载时,用this.addChildAt(容器ID,0);
具体在帮助文档里有详细说明.... ......
Getting Around Bug in Adobe Flex: TabControl Inline Event Handling for TabIndexChange Doesn't Work
I ran into this because I wanted to do something funky. I wanted my Flex app window to change PageStates (and size) whenever the TabIndex changed. Whether doing this kind of thing is wise in a user interface is yet to be seen -- I did it and it even strikes ME as a bit off the wall -- but it did solve the immediate issue. The immediate issue was that some of my tabs required a lot of space and some did not. This left a lot of ugly whitespace.
So, I figured, Flex (Actually Flash under the covers) must have an event handler for changing tabs. And I was rewarded very quickly: There is a "TabIndexChange" inline event handler. For the uninitiated, such a thing looks something like this:
<mx:TabNavigator id="tabnavigator1" tabIndexChange="myHandlerFunction()">
With most other events, this works just fine: When the event fires, the handle ......
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
function chkbox():void
{
var menssage:String = "";
if (chk1.selected == true)
{
menssage +=100 + "\n";
}
if (chk2.selected == true)
{
menssage +=200 + "\n";
}
if (chk3.selected == true)
{
menssage +=300 + "\n";
}
text1.text = menssage;
}
]]>
</mx:Script>
<mx:Panel x="21" y="10" title="复选框示例" width="250" height="400" layout="absolute"><mx:VBox x="3" y="10" height="100%">
<mx:CheckBox id=" ......
绑定:
举个例子: 给下面的public变量加上[Bindable]
[Bindable]
public var name:String = "";
作为一个public变量,肯定既可以被赋值,也能赋值给别的变量。绑定的作用就是,当name改变的时候(被赋值了),可能通知其它被name影响(赋值给它们)的变量发生改变。这里的“可能”就需要编译器来判断,这就是为什么元数据是给编译器用的原因了。在mxml里用{}的语法的地方就是绑定的对象,比如label={xxx.name},当name变化,label也跟着变化。这样,我们只是很简单的改变了name的值,由于有绑定,界面上的label也跟着自动变化了。
能用的地方
三个地方:类, 变量, getter/setter。是不是public没有关系,private的就只能给自家用呗。用在Class上就是简单的给所有的public属性(包括变量,getter/setter,普通方法)加上[Bindable],可是一般的方法不能用[Bindable]呀,于是一般就能看到flex给了个warning,直接无视:)。变量嘛就是上面讲的,很简单略掉。
用在只读,只写属性(getter/setter)上面
终于讲到关键地方了,因为getter和setter很像方法,用起来会有点不同。看看这个例子:
[Bindable]
pri ......
对AS、Flex等知识进行汇总,方便大家学习和查找……
温馨提示:
1.下载教程请注意方法,鼠标右键点击链接从弹出菜单中选择迅雷等工具下载,服务器有时太繁忙还请耐心等待一下;
2.单个教程的分卷压缩包请全部下载后解压,否则解压会出现缺包的情况导致解压失败;
3.如还有问题,可以利用三种方法提出:
a.在主题帖下面回复,提出问题;
b.可以利用大家网的自带系统“发送消息”(页面左边主题帖楼主头像下面),联系各位楼主;
ActionScript、Flex及相关教程:
ActionScript 3.0开发技术大全(小而清晰视频教程)
ActionScript 3.0从入门到精通(教学PPT下载)
ActionScript 3.0从入门到精通(高清视频教程)
Flex从入门到实践_完全学习教学视频
Flex从入门到实践_编程专题讲座视频
AcitonScript 3.0游戏开发基础与范例_基础部分(教程下载)
AcitonScript 3.0游戏开发基础与范例_游戏部分(下载)
ActionScript 3.0 殿堂之路(随书光盘视频教程)
ActionScript 开发技术_专题讲座电子书
高级ActionScript 3.0 设计模式
actionscript3.0视频教程合集【压缩包】
ActionScript ......