OpenSource Flex Controls

  • FlexLib 

http://code.google.com/p/flexlib/

The FlexLib project is a community effort to create open source user interface components for Adobe Flex 2 and 3.

Current components: AdvancedForm, Base64Image, EnhancedButtonSkin, CanvasButton, ConvertibleTreeList, Draggable Slider, Fire, Highlighter, HorizontalAxisDataSelector IconLoader, ImageMap, PromptingTextArea, PromptingTextInput, Scrollable Menu Controls, SuperTabNavigator, Alternative Scrolling Canvases, Horizontal Accordion, TreeGrid, FlowBox, Docking ToolBar, Flex Scheduling Framework

 

1. Flexbox 
http://flexbox.mrinalwadhwa.com/ 
这是一位来自印度的flex开发者在07年2月份建立的flex组件库,里面也有不少好东西。 

2. Flexlib 
http://code.google.com/p/flexlib/ 
由Dougmccune等人建立的flex组件库,其中有不少实用的组件。 

3.SpringGraph Flex Component 
http://mark-shepherd.com/blog/springgraph-flex-component/ 
非常酷的拓扑关系组件! 

4.Flex Visual Graph Library 
http://code.google.com/p/flexvizgraphlib/ 
又一个拓扑图形展示的类库,动态效果那叫“惊艳”! 
该项目的讨论组: 
http://groups.google.com/group/flexvizgraphlib 

5. Open Source Framework for Flex / Flash & AIR(Apollo) 
http://code.google.com/p/advancedflex/ 
The Advanced Flex project is open source Libraries & Framework for Adobe Flex & Flash developer. This is the framework written in AS3.0 & MXML for Flex & Flash & AIR(Apollo). 

看起来里面涉及到了AOP及debugger等内容,有时间要好好看看了。 

6. Open Source Flex Component: TreeMap 
http://www.zeuslabs.us/2007/11/14/open-source-flex-component-treemap/ 

7. FlexMDI 
http://code.google.com/p/flexmdi/ 
主要解决多窗口应用生成的问题,全名叫做:Flex Multiple Document Interface ,效果很不错,对于做基于窗口的应用来说是个好的起点。 

8. 反射组件类reflexutil 
http://code.google.com/p/reflexutil/ 
这是作者的博客: 
http://blog.deconcept.com/ 

9. 对象处理器flex-object-handles 
http://code.google.com/p/flex-object-handles/ 
作者对该组件的介绍: 
http://rogue-development.com/objectHandles.xml 
WIKI: 
http://code.google.com/p/flex-object-handles/wiki/ObjectHandlesUsage 
功能是很强大,不过要想自己使用,还需修改一番! 

10.CheckboxTree和Carousel组件 
http://giles.roadnight.name/components.cfm 
都有演示和源码! 

11.Flex拖拽库 
http://code.google.com/p/flex-drag-n-drop-lib/ 
新鲜出炉的类库,太棒了,以后做拖拽处理就方便多了! 

12. birdeye 

http://code.google.com/p/birdeye/ 

该项目是一个比较庞大的项目涉及数据可视化的多个方面: 
关系分析展示: 
Relational Analysis (RaVis) 
空间信息分析展示: 
GeoSpatial Analysis (GeoVis) 
数值分析展示: 
Quantitative Analysis (QaVis) 
历史数据分析 
Temporal Analysis (TaVis) 
变形类库: 
General Utility (GuVis) 

13.antennae 
http://code.google.com/p/antennae/ 
基于ant的Flex工程编译模版,内置FlexUnit等测试工具,很强大的说。 

14.Degrafa:声明式的图形描述框架 
官方网站: 
http://www.degrafa.com/ 
googlecode: 
http://code.google.com/p/degrafa/ 
演示: 
http://samples.degrafa.com/ 
个人还是喜欢用AS3和flashIDE来绘图,不太喜欢这个东西。不过这可框架有专门的组织来推动,似乎前景不错! 

15.openflux 
号称是 an open-source Flex component framework which allows developers to create radically new and custom Flex components,似乎是基于下一代Flex组件标准,但是目前还没看到更多的东西。只有这个: 
http://www.bobjim.com/2008/04/04/updated-plexiglass-openflux-3d-example/ 
该项目的GoogleCode: 
http://code.google.com/p/openflux/ 

16.FlexReport 
http://code.google.com/p/flexreport/ 
作者博客: 
http://www.kemelyon.com/bts/ 
一个开源的客户端报表生成组件,目前唯一不足的是不能消除字体的锯齿问题,不过只要不放大字体,应该没问题 

******************************************************************************************** 
AS3开源项目 

1.Flex/Actionscript Math Library 
http://code.google.com/p/as3mathlib/ 
The Flex/Actionscript Math Library (as3mathlib) is intended to provide a rudimentary numerical analysis toolkit for the Actionscript/Flex programming environment. 

一个很不错的基础项目,不过看起来还没有完成:This library has just been converted from Actionscript 2 to Actionscript 3. It is not ready for general use. 

2.ActionScript 3.0 library for several basic utilities 
http://code.google.com/p/as3corelib/ 
AS3核心类库,里面有包括加密、图形文件编码等等类库。 

3.alivepdf 
http://code.google.com/p/alivepdf/ 
是一个Open-source AS3 PDF library,目的在于将flash内容转为pdf文件信息,通过后台程序来生成pdf文件。 

4.Tweener 
http://code.google.com/p/tweener/ 
A class for creating tweens in actionscript 2 and 3 - because there’s infinity between 0 and 1. 

5.ActionScript 3 libraries for interactive visualizations on the web 
http://flare.prefuse.org/ 
刚(10.22.2007)发布的数据可视化工具包,目前alpha版,不过有不少亮点了,很有希望。 

6.Dependency injection / Inversion of control container for ActionScript 3, Flash 9, and Flex 2 
http://code.google.com/p/di-as3/ 

7.as3ds 
http://code.google.com/p/as3ds/ 
AS3 Data Structures For Game Developers 

以前记得这个好像是收费的,现在看起来没限制的使用了。 

8.Pulse粒子系统 

作者对该系统的介绍: 
http://www.rogue-development.com/pulseParticles.html 

Google code: 
http://code.google.com/p/pulse-particle/ 

演示地址: 
http://rogue-development.com/pulse/explorer/ 

9.AS3 GIF Player Class 
http://www.bytearray.org/?p=95 
GoogleCode: 
http://code.google.com/p/as3gif/ 

10.AS3的物理引擎(ActionScript 3 Physics Engines) 
http://henryjones.us/articles/actionscript-3-physics-engines 

11. 数据可视化类库Prefuse 
http://flare.prefuse.org/ 
the flare visualization toolkit:ActionScript 3 libraries for interactive visualizations on the web. 

12.文档解析类库:vanrijkom-flashlibs 
http://code.google.com/p/vanrijkom-flashlibs/ 

其中最有用的可能是地图文件和3D文件的解析类库了! 

13.MinimalComps: Minimal AS3 UI Component Set 
http://www.bit-101.com/blog/?p=1126 

14.GoogleMap Flash Interface 
http://code.google.com/p/google-maps-flash-interface/ 
可惜的是written in ActionScript 2,不过应该有借鉴意义。 

15.ScaleBitmap : 9-slice bitmap class 
http://www.bytearray.org/?p=118 
一个缩放位图的类,很有用! 

16.开源AS3即时通讯类库XIFF 
http://www.igniterealtime.org/projects/xiff/ 

17.另一粒子系统Flint Particle system 
http://flintparticles.org/ 

18.as3httpclientlib 
An HTTP/HTTPS client library for Actionscript 3. 
http://code.google.com/p/as3httpclientlib/ 

19.AS3 Cryptography Library 
http://crypto.hurlant.com/ 

****************************************************************************** 
AS33D项目 

1. PV3D 

虽然该项目发布不长时间,但是它已经名声远扬了,遗憾的是这段时间它的官方博客不能访问了,只能访问它其他网站: 
Google code 
http://code.google.com/p/papervision3d/ 
Wiki 
http://wiki.papervision3d.org/ 
John Grden 
http://www.rockonflash.com/blog/ 

2. away3D: 

官方网站: 
http://www.away3d.com/ 

google code: 
http://code.google.com/p/away3d/ 

同pv3d一样,是基于actionscript 3的flash3D引擎: 
Away3D is a realtime 3d engine for flash in actionscript 3, originally derived from Papervision3D 

************************************************************************************ 
与JS相关类库 

1.SWFAddress 
http://www.asual.com/swfaddress/ 
项目地址: 
http://sourceforge.net/projects/swfaddress 

SWFAddress is a small, but powerful library that provides deep linking for Flash and Ajax. It’s a developer tool, allowing creation of unique virtual URLs that can point to a website section or an application state. SWFAddress enables a number of important capabilities which are missing in today’s rich web technologies 

该类库解决了swf的难题,深度链接,也是flex3的一个重要特色,值得关注! 

2. 不可不提的swfobject 
http://code.google.com/p/swfobject/ 
SWFObject is an easy-to-use and standards-friendly method to embed Flash content, which utilizes one small JavaScript file 

3.HTMLWrapper 
http://code.google.com/p/htmlwrapper 
Motion & Color Inc. today open-sourced a public beta version of 
Wrapper, formerly used for closed-sourced projects. Wrapper is a 
cross-browser compliant HTML/CSS rendering engine written in 
ActionScript that sits on top of your standards compliant HTML page. 
Wrapper eliminates cross-browser issues and makes integrating 
ActionScript and HTML/CSS projects possible without needing to 
compile. Wrapper will be available free from 

*********************************************************************************** 
企业级组件库 

1.YahooFlex/Flash组件ASTRA Galore 

ASTRA Galore: New Flash and Flex Components 
http://www.yswfblog.com/blog/2008/01/30/astra-galore-new-flash-and-flex-components/ 
官方的话是这么说的: 
Our ASTRA library of components has just been updated with three new Flash components and seven (yeah, we are serious about this) new Flex components, as well as some important updates to the existing ones. 

Yahoo,真棒! 

*********************************************************************************** 
ROR与Flex相关类库 

1.The Ruby on Rails RIA SDK by Adobe 
http://code.google.com/p/rubyonrails-ria-sdk-by-adobe/ 

2. as3Stomp - Project site and source code 
http://flexonrails.net/?p=99 
该项目在Googlecode地址: 
as3-stomp 
This library is an actionscript 3 implementation of the Stomp protocol. It enables communication between Flash or Flex and any Stomp broker. 

It has been primarily designed to work with Apache ActiveMQ. 
************************************************************************************* 
测试类库 

1. 使用FlexUnit 
http://www.adobe.com/devnet/flex/articles/unit_testing.html 
http://code.google.com/p/as3flexunitlib/ 

2. 可视化Flex单元测试框架visualflexunit: 
Announcing Visual FlexUnit - A Visual Testing Extension for FlexUnit 

该项目的home page在google code。 
作者Douglas McCarroll与合作公司Allurent共同建立了这个项目,并开源供大家使用。 
************************************************************** 
FlexMap组件 
1. uMap(免费) 
homepage: 
http://www.afcomponents.com/components/umap_as3/ 
demos: 
http://ccgi.arutherford.plus.com/website/flex/UMap/UMapFlexDemo/ 
mouseover to triangle to show picture: 
http://ccgi.arutherford.plus.com/website/flex/modestmaps/sampleCCTV/ 

2.modesMap(开源) 
homepage: 
http://modestmaps.com/ 
demos: 
http://modestmaps.com/example.html 
http://modestmaps.com/tutorial-actransit/actransit.html 

************************************************************************ 

Flex框架类库 

1、针对Cairngorm的扩展框架:Flexcairngoam 

http://code.google.com/p/flexcairngorm/ 

Adobe官方的cairngorm框架早就被人们诟病,这次这个非官方的补充,看来是个容易让人接受的框架了!

Creating a 3D model in Flex using Blender and papervision3D

creating a 3D model in Flex using Blender and Papervision3D - a beginning tutorial

This tutorial is for beginners using papervision3d with flex. I’m not an expert, but I’ve been experimenting with it, and here’s a way to get started with collada files in Flex. Here we will be creating a 3D model from the very beginning.

First, a few notes:
It seems that papervision3D/Flex are finicky with the collada files, so they must be exported in a very specifc way in order to import properly. In this example I’m using Blender. With other apps (like sketchup) there will be a different method to create and acceptable collada file, and some will need to be edited manually in order to work (I’ll do a tutorial on that later)

I haven’t gone into depth with textures/materials here, but I put in a real basic bitmap texture that works for this example. I’ll do more on textures later ….

To create the model in flex, we need a few things:
1) the papervision3D class package : you can find it here: http://blog.papervision3d.org/
2) a properly prepared .collada file - here we use Blender - found here: http://www.blender.org
3) an actionscript file to load and control the collada1) First make sure that your papervision class folders are in the appropriate path. For now you can just drag the org folder in to your flex project folder.2) open Blender and delete the default cube. (press x)
3)click add->mesh->torus4) in the editing window, click new material, then new UV texture
5)click the textures button, and select texture type->image
6) load a bitmap image to use as your texture
7) goto file->export->collda1.4in the export window, the following items are selected: (the rest are deselected)
triangles
only export selection
disable physics
use relative paths

export the file and rename it torus.dae

8) open the dae file in a text editor and scroll until you see a line similar to this:

this is the name of your material you need to reference in your as file, here it is “Material_001″ if yours is different, write it down.

9) create an image called grid.png (or use the downloaded one)

10)make sure the .dae file and the image file are in your flex project folder (or write the full path to where they are in the as file.)

The flex Project:
open a new actionscript project, name it ColladaBlender, and add the following code:

If you are unfamiliar with what’s going on in the code read it carefully - it’s not commented, but if you are familiar at all with Acstionscript 3.0 classes, you should see what’s going on here.

package {
import flash.display.Bitmap;
import flash.display.Sprite;
import flash.events.Event;

import org.papervision3d.cameras.Camera3D;
import org.papervision3d.materials.BitmapMaterial;
import org.papervision3d.materials.MaterialsList;
import org.papervision3d.objects.DisplayObject3D;
import org.papervision3d.scenes.Scene3D;
import org.papervision3d.objects.Collada;

[SWF(backgroundColor="#000000", frameRate="40")]
public class BlenderCollada extends Sprite
{
/* this reference to an image file overrides whatever image file is referenced in the collada file as long as the material name is the same*/
[Embed(source="./grid.png")] private var Material_001:Class;
[Embed(source="./torus.dae", mimeType="application/octet-stream")] private var MyObject:Class;
private var myMaterials:Object;
private var container:Sprite;
private var scene:Scene3D;
private var camera:Camera3D;
private var rootNode:DisplayObject3D;

public function BlenderCollada()
{
var Material_001:Bitmap = new Material_001() as Bitmap;

myMaterials = {
/*
open your collada (.dae) file and look at where the material is defined:

replace all references to “Material_001″ in this actionscript file with your material name
*/
Material_001: new BitmapMaterial( Material_001.bitmapData )
};

init3D();

addEventListener(Event.ENTER_FRAME, loop3D);
}

private function init3D():void {

container = new Sprite();
addChild( container );

container.x = 200;
container.y = 200;

scene = new Scene3D( container );

camera = new Camera3D();
camera.x = 3000;
camera.z = -50;
camera.zoom = 150;
camera.focus = 10;

rootNode = scene.addChild( new DisplayObject3D(”rootNode”) );
rootNode.addChildren( new Collada( XML( new MyObject() ), new MaterialsList( myMaterials ) ) );

}

private function loop3D( event:Event ):void {
var screen: DisplayObject3D = scene.getChildByName(”rootNode”);
var rotationY: Number = -(mouseX / stage.stageWidth * 360);
var rotationX: Number = -(mouseY / stage.stageHeight * 360);
screen.rotationY += (rotationY - screen.rotationY) / 12;
screen.rotationX += (rotationX - screen.rotationX) / 12;
scene.renderCamera(camera);
}
}
}

Test the application.

I will be posting more tutorials and examples as I continue to work with Papervision3DGood Luck!

example: http://www.tetraktysdesign.com/experiments/BlenderCollada/bin/BlenderCollada.html