Click here to download the code.
This page contains various open source ActionScript 3.0 APIs which is developed specifically for Adobe Flex and AIR.
IMap:
Defines the contract for lightweight HashMap implementations which are to expose an API into a managed collection of key value pairs
IMap
HashMap:
IMap implementation which dynamically creates a HashMap of key / value pairs and provides a standard API for working with the map
HashMap
ResourceMap:
IMap implementation which dynamically creates a Map of key / value pairs and provides a standard API for creating, removing, updating and deleting resources at runtime.
ResourceMap
LocalPersistenceMap:
Provides an IMap implementation into the data object of a SharedObject on a clients local file system.
LocalPersistenceMap
IHashMapEntry:
Defines the contract for classes which are to provide a specific implementation of an IMap entry.
IHashMapEntry
HashMapEntry:
Provides a strongly typed implementation of a key / value pairs.
HashMapEntry
Iterator:
Defines the contract for concrete classes which must provide an API for performing iteration over an aggregate object.
Iterator
CollectionIterator:
Concrete Iterator implementation which provides an API for iterating over an ICollectionView.
CollectionIterator
ArrayIterator:
Concrete Iterator implementation which provides an API for iterating over an Array
ArrayIterator
IEnumeration:
Defines the contract for concrete Enumeration implementations which must provide an API for generating a series of elements from which each element can be accessed successively
IEnumeration
StringTokenizer:
StringTokenizer provides a simple API from which Strings can be split into individual tokens based on a specific delimiter.
StringTokenizer
CollectionSortUtil:
Utility class which provides sorting of an ICollectionView based on specified key.
CollectionSortUtil
IQueryString:Defines the contract for classes which are to provide an API which allows detailed inspection / modification of a QueryString.
IQueryString
QueryString:
Provides an API which allows for detailed inspection and / or modification of an application QueryString.
QueryString
INamespaceManager:
INamespaceManage defines the contract for Namespace management APIs which are utilized by classes and components within an application to retrieve the unique Namespace under which the current context of an application is executing.
INamespaceManager
ContextNamespace :
ContextNamespace is a Singleton class which can be utilized by classes within an application to retrieve a contextual namespace in which methods and properties of an object are to be referenced under
ContextNamespace
Encryption:
Provides an all static API which wraps the SHA1, SHA-256 and MD5 encryption algorithms, respectively, to allow specific encryption algorithm to be applied to a String
Encryption
GUIDFactory:
All static API which provides a Factory implementation for generating Genuine Unique Identifiers (GUID)
GUIDFactory
IGUID:
Defines the contract for classes which must provide an API in which clients can get / set Genuine Unique Identifiers (GUID).
IGUID
TestSuiteHelper:
All static utility class which provides a mechanism for adding derived TestCase instances to a TestSuite for each method defined by a specific class
TestSuiteHelper
IExecutable:
Defines the contract for classes which are to provide an API which calculates the elapsed time of a code execution
IExecutable
Execution:
Convenience class which provides a simple API whereby a specific code execution duration can be measured for calculating relative time in milliseconds
Execution
MemorySnapshot:
Creates a snap shot containing the total allocated memory used by Flash Player which can be used for diagnostic purposes.
MemorySnapshot
SingletonManager:
All static class which enforces classes adhering to the Singleton pattern are only ever to have a single instance instantiated, thus eliminating the Singleton construction / protection code from the actual class implementation.
SingletonManager
AbstractEnforcer:
All static class which provides an API for enforcing a pseudo-abstract class can never have an instance instantiated
AbstractEnforcer
AbstractStaticType:
Abstract class which enforces a class of static type is never instantiated
AbstractStaticType
ConstantDefinitionUtil:
All static utility class which provides a mechanism for determining if a static constant has been defined by a specific Class object as well as operations for inspecting constants which have been defined by a class object
ConstantDefinitionUtil
AbstractError:
Pseudo-abstract class which provides a base class implementation allowing sub-classes to replace message tokens with arbitrary detail parameters
AbstractError
DynamicBindingChain:
Provides a mechanism for dynamically adding data bindings to a property on an object as well as management of all objects within the Binding Chain.
DynamicBindingChain
DeepCopy:
Utility class consisting of a single static method which creates a deep copy (clone) of an object to a new memory address
DeepCopy
Reflection:
Retrieves the class Object for the String name representation of a specified type
Reflection
BinaryConversion:
All static utility class which provides an API for converting numeric data types to their 4, 8, 16 and 32-bit binary equivalents, respectively
BinaryConversion
LocaleHelper:
All static helper class which provides an API for determining specific client Locale information.
LocaleHelper
StringUtils:
All static utility class which builds on mx.utils.StringUtil to add additional methods for replacing items in a specified String
StringUtils
EnterKeyHelper:
All static class which provides a mechanism from which Keyboard enter key events can be handled to invoke the appropriate handler with arbitrary parameters
EnterKeyHelper
ResourceInspector:
All static class which provides utility methods for performing detailed inspection of a ResourceBundle
ResourceInspector
URIRequestHelper:
All static class which provides an API for loading a linked document to a specified target
URIRequestHelper
HTTPPOSTGateway:
Provides an API which parses an arbitrary object and posts the properties of the object as a set of name / value pairs in an URI encoded HTTP Post
HTTPPOSTGateway
IViewNotifierEvent:
Provides a mechanism which facilitates view notification for CairngormEvent sub-classes by dispatching result / fault events back into the event flow from which views of interest can addListeners and respond accordingly
IViewNotifierEvent
XMLSerializationUtil:
All static API which provides a utility for serializing an n-level nested Object to an XML encoded document structure.
XMLSerializationUtil
IXMLEncodable:
Defines the default contract for encoding a generic object to an XML encoded object as well as decoding an XML object to a generic object type
IXMLEncodable
XMLDocumentLoader:
Utility class which defines a single static method which for loads an xml Document
XMLDocumentLoader
XMLAttributeUtil:
All static class which provides an API for querying XML attributes
XMLAttributeUtil
IDAO:
Provides a Generic client side DAO / CRUD implementation which has been adapted from a typesafe Hibernate / Spring AOP DAO.
IDAO
IAMFSerializable:
Defines the contract for serializing / deserializing AMF encoded classes in order to preserve and retain type
IAMFSerializable
DoubleClickGesture:
All static utility class which detects a double click based on a minimum duration of 300 milliseconds
DoubleClickGesture
IResourceWriter:
Defines the contract for classes which must provide an API for writing properties to a resource bundle
IResourceWriter
ResourceWriter:
Provide an API for synchronized .properties file creation and modification for Adobe Apollo
ResourceWriter
IInspectableFileClient:
Defines the contract for classes which perform File related tasks and must provide an interface into the File object
IInspectableFileClient
FileWriter:
Provides an API for synchronous and asynchronous File creation to a local filesystem
FileWriter
INativeDragOperationClient:
Defines the contract for classes which are to handle NativeDragEvent which occur when a file is dragged from the users desktop to an AIR application
INativeDragOperationClient
NativeDragOperation:
Provides an API from which multiple clients of interest can receive notification when a NativeDragEvent occurs as a result of a specific user gesture which triggers a Drag and Drop operation
NativeDragOperation
ClientSystemCapabilities:
All static class which provides an API for retrieving a users system capabilities
ClientSystemCapabilities
FlashPlayerGlobals:
Provides an all static API which facilitates the inspection of the Flash Player version and the underlying Actionscript Virtual Machine version.
FlashPlayerGlobals
AVM2MemoryUtil:
Utility class which provides static methods for retrieving the total memory allocated to the Flash Player VM in bytes, kilotbytes or megabytes
AVM2MemoryUtil
ManagedTimer:
All static class which provides an API for working with Managed Timer instances
ManagedTimer
USDCurrencyFormatterFormats:
a Number to a valid USD / 840 US Dollar, For instance, converts 20304.05425 to $20,304.05 and so forth
USDCurrencyFormatter
DisplayObjectReparenter:
All static utility class which provide an API in which DisplayObjects can be reparented to a new parent container within the system.
DisplayObjectReparenter
AlertWindowHelper:
Alert Helper class which handles displaying a Alert window which contains a custom title, message and handlers for OK, Cancel, Yes and No
AlertWindowHelper
AMFPHPRemoteGateway:
Provides a generic AMFPHP gateway implementation for performing remote procedure call (RPC) service invocation.
AMFPHPRemoteGateway
WebORBPHPRemoteGateway:
Provides a generic Weborb for PHP gateway implementation for performing remote procedure call (RPC) service invocation.
WebORBPHPRemoteGateway
IPV4Inspector:
Provides an API for inspecting and validating an ip address which is to validate against an IP version 4 Address (IPv4)
IPV4Inspector
Google has just released a Flash edition of the Google Maps API. In this tutorial you will how to install the necessary components and build a very basic map. 3
Read Tutorial
Possibly related posts: (automatically generated)
Google Maps API for Flash
More Infrastructure for the Geospatial Web
Maps
Google Code FAQ - Using PHP/MySQL with Google Maps
- 3D Tutorials
- Adobe Acrobat 3D
- Adobe AIR Tutorials
- Adobe Dreamweaver Tutorials
- Adobe Flash Tutorials
- Adobe Flex Tutorials
- Adobe Illustrator Tutorials
- Adobe Media Player Tutorials
- Adobe Photoshop Tutorials
- Away 3D Tutorials
- Fireworks Tutorials
- Flash Lite Tutorials
- Papervision 3D Tutorials
- PHP Tutorials
- Sandy 3D Tutorials
- SilverLight Tutorials
Install FCG Beta for AIR 1.0 by clicking the following install badge :
This application requires the following be installed: Please click on each link in the order above to complete the installation process. |
Overview / Features
How to
Release notes
Feedbacks
Overview / Features
FCG is an AIR application, currently under development, which primary goal is to automatically provide the base code for your RemoteObject based Flex applications. Basically, it means that it reads some code from the server side, and creates a bunch of MXML and AS files to boost your productivity. Its goal is not to create a ready-to-use application, but to provide the tools you need to do so as quickly as possible.
FCG generates code using either the Cairngorm framework or the PureMVC framework. So FCG is both a Cairngorm generator and a PureMVC generator.
There are some differences between FCG and the other (mainly Cairngorm) generators:
- It does not just create some packages and close-to-empty files : it can read your PHP, Java or C# code and then create the according AS and MXML files.
- Contrary to some other generators, I chose not to add any personal class to the generated code. I think it should remain the developer's decision to use, say, a super class, for its Commands that could deal with some common issues. It should not be the generator's decision. Of course, one could argue that some of the code generated by FCG is too invasive, but I generally try to do things "by the book".
- As an AIR application, it runs on your computer, so you don't need to publish anything on a server to make it work.
- It is independent from any kind of server side technologies (though only PHP, Java and C# files are supported so far) and from any kind of remoting gateway. In fact, with FCG, you could use, say, an AMFPHP service, a WebORB for Java service, and a Fluorine service, in the same Flex project.
- It allows you to keep control over the generated files. Many developers are a bit skeptical about code generators, and for a good reason : they're afraid to lose control over their code. Most of the time, they assume that the resulting code just "won't fit". Indeed, generators always have to take some decisions that will obviously not satisfy everyone.
FCG allows you to keep control over the generated files in three ways:1. Options, such as defining some ValueObject properties as getter setters, selecting which Service method you want to implement, strongly type their arguments even if it comes from a not strongly typed language such as PHP. Note that C# and Java data types are automatically "mapped" to a default corresponding AS3 type.
2. Templates : FCG is a Mixed Code Generator. It means that it uses templates you can modify to adapt it to your dirty habits ;)
Note : you can find the templates directory at user/applicationdata/FCG/ASTemplates (Windows XP) or user/Library/preferences/FCG/ASTemplates (OSX)3. You can generate what you want, when you want, and where you want. This means that you absolutely don't have to use all the files that FCG generates for a project. For instance, you can use it to simply create ModelLocators or business delegates for your existing apps, or even just custom event subclasses, and not use anything else.
Now, what's wrong with FCG?
- It's a beta version. This means that it has bugs, and some things may not work as expected.
- It only parses PHP, Java and C# files, and the way it does it is really not that good. FCG makes heavy use of regexps, and I'm still pretty new to this topic. There is big room for improvement here.
- I wish there were many more options to let the users have even better control over the generated files.
- On the (crowded) Cairngorm code generation space, Steven Webster has announced that Adobe Consulting was working on a Eclipse Plugin which will probably better than FCG in just every aspect... at least we can hope so.
- And finally, I think we can all agree to say that it's not the sexiest app out there, and its logo just sucks.
How to
Project set up
You first have to set up your project by setting your fully qualified main package name, and choosing your architecture framework. FCG starts by creating some base files :
- MainView.mxml, which is supposed to be placed in your application root tag (whether it is mx:Application, mx:WindowedApplication or mx:Module)
- (if using PureMVC) the ApplicationFacade and a StartUpCommand
- (if using Cairngorm) the ModelLocator, the FrontController, and the ServiceLocator
Adding Value objects
When you add a ValueObject based on a PHP, Java or C# file, FCG generates an AS3 ValueObject. You can specify its attributes type (especially for PHP since it's not strongly typed) and ask it to create it as a getter setter. Optionally, you can generate an Event based on this Object, with constants representing the CRUD operations. If you use Cairngorm, this Event will be a CairngormEvent. If you use PureMVC, it will be a flash.events.Event.
You can also ask FCG to generate two basic views : a Form view (to let the users edit the ValueObject) and a List view (to display a list of these value objects). Since those views are independent from any framework, they dispatch events (the event we just talked about) using a their dispatchEvent() method, not Cairngorm's dispatch() method (neither do they send PureMVC's Notifications).
If you use Cairngorm, the ModelLoactor will be added two properties : an ArrayCollection and a current[Vo]:[VOClass]
property.
If you use PureMVC, a Proxy based on this object is created and, with each view, a Mediator whose job is to listen to its associated view and then send a Notification.
Adding Remote Services
When you add a PHP, Java or C# Remote Service, FCG generates a BusinessDelegate and one Command per Service method/operation. You can specify the methods parameters types, which, again, is especially useful for PHP with which, by default, the type is Object, and so is the default return type of the methods. Java and C# data types for method parameters and return values are automatically converted to a corresponding AS3 data type.
Back to Flex Builder
FCG does not deliver a ready-to-run application. You'll still have to code to get your application working. Here's what you generally do with the generated code (assuming that you've used all the default options):
- 1. Add the MainView component to your application tag (Application, WindowedApplication or Module)
- 2.Cairngorm
Add to the Lists and Forms components the corresponding Model bindings and event dispatch. The List view has a "collection" property (type ArrayCollection) which is supposed to be bound to the [vo]Collection property of your ModelLocator. It disptaches a set[Vo] event when the user selects something in the Datagrid. The Form view has a current[Vo] property that is supposed to be bound to the current[Vo] property of your ModelLocator.
Edit MainView.mxml to dispatch the first CairngormEvent.
Edit the registered Commands to set the appropriate delegate methods parameters (if needed, you'll end up with an error if it is).
Edit the registered Commands to update the Model in their result() methods.
- 2* PureMVC
Edit StartUpCommand to send the first Notification.
Edit your RemoteProxy to update the corresponding Proxy in the result methods.
Edit your mediators to call the remoteProxy when needed (or optionnally let them sendNotification and have a Command do the job).
You can check a small video preview here by clicking the image below.
The video was made with an early version of FCG, but there is no much difference, excepted that you can also use Java files and that you have more options.
(please excuse my english):
Release Notes
You can download the latest beta version here, but remember that you'll need to have AIR 1.0 installed. Thanks to Rich Tretola, the application has the ability to auto-update, so that you don't have to wonder if you have the latest version installed.
Latest version is 0.9.6
Main new Features / bug fixes
General
- New architecture to enable custom extensions (TBD)
Generation Layer
- You can now choose to generate for code for Flex - not using any architecture framework at all
- Templates keywords have been normalized (LC prefix refers to lower case on the first char, UP to upper case on the whole word)
UI
- Auto-complete TextInputs for entering AS3 types
- It's now possiblie to start a new project without having to close / open FCG
- Help icons can be disabled/enabled
- The file tree seems to have a better behavior (although it's still far from being perfect)
- Application height has be optimized
Analysis layer
- minor bug fixes
Download FCG for AIR 1.0
After discovering all the benefits the Cairngorm micro architecture, I quickly found that creating all the classes and mxml files was quite tedious. Thus Cairngorm Creator was born. Cairngorm Creator is a Flex code generation application that enables developers to quickly define and create a Flex application skeleton based on the Cairngorm micro architecture.
- User-defineable package name
- User-defineable folder names
- Custom build file
- Save and Load structure definitions (XML)
- Editable source XML
- Preview Files
- Downloadable Zip File
Current Features
FLEX
Flex is a framework that helps you build dynamic, interactive rich Internet applications. Flex applications are delivered on the web via the Flash Player or to the desktop via Adobe AIR. You can build applications using the free Flex SDK or Flex Builder, an Eclipse based IDE.
Flex is available for Java developers , .NET developers , PHP developers, and ColdFusion developers.
Some use full Flex Tutorial Link
http://examples.adobe.com/flex2/inproduct/sdk/explorer/explorer.html
Flex Sample Application (Felx & Java & HSQL) using Avil framework:
http://sourceforge.net/project/showfiles.php?group_id=174131
Getting Start With
http://learn.adobe.com/wiki/display/Flex/Getting+Started
Flex For ASP.NET Developers
http://learn.adobe.com/wiki/display/Flex/Flex+and+ASP.NET
Flex For Java Developers
http://learn.adobe.com/wiki/display/Flex/Flex+and+Java
Flex For PHP Developers
http://learn.adobe.com/wiki/display/Flex/Flex+and+PHP
And Some other related links:
http://learn.adobe.com/wiki/display/Flex/Animated+overview
Flex With 3D
Some Demo Web Site
http://examples.adobe.com/flex3/labs/networkmonitor/main.html - Network Monitor
http://www.oddcast.com/home/demos/tts/tts_example.php?sitepal - Text to Speech
http://hessian.caucho.com/ria/Words.swf
http://app.lightstreamer.com/FlexDemo/
http://examples.adobe.com/flex3/labs/mediawidget/index.html#
http://examples.adobe.com/flex2/inproduct/sdk/flexstore/flexstore.html
http://examples.adobe.com/flex3/labs/dashboard/main.html#
(Yahoo Maps Collaboration using Flex and BlazeDS)
http://www.jamesward.org/census/
Posted by : RIA Member
About Me
- HCL - RIA Group
- RIA Group at HCL Technologies, India, offers end-to-end services for the execution of result-oriented and appealing powerful applications using Adobe Flex 3.0, Silver Light, FMS, Flex Life cycle and Flash CS3. Most of the team members are Adobe certified professionals currently woking for various big market legends from multiple locations.This bolg is to centralise their communication and place to post their view and Qs. Happy going RIA at HCL. Note:- Anyone who is interetsed and excited about RIAs in any technology may post their comments and Qs.
Recent Posts
Archives
-
▼
2008
(27)
-
▼
June
(11)
- Flex Amazon Explorer
- The Evolution of the Flash Platform
- ActionScript 3.0 APIs
- Tutorial | Installing and Using Google Maps in Flex
- Good Tutorials
- Nice Resources
- Huge Comment Text Generator !!
- FCG : A Flex Code Generator
- Introducing Cairngorm Creator
- Flash, Flex & AIR: Presentation
- Flex Tutorial & Demo Link
-
▼
June
(11)